Note: The other languages of the website are Google-translated. Back to English

วิธีส่งอีเมลด้วยการคัดลอกและวางช่วงที่ระบุลงในเนื้อหาอีเมลใน Excel

ในหลาย ๆ กรณีเนื้อหาที่ระบุในแผ่นงาน Excel อาจมีประโยชน์ในการสื่อสารทางอีเมลของคุณ ในบทความนี้เราจะแนะนำวิธีการส่งอีเมลโดยวางช่วงที่ระบุลงในเนื้อหาอีเมลโดยตรงใน Excel

ส่งอีเมลพร้อมระบุช่วงที่วางลงในเนื้อหาอีเมลใน Excel
ส่งอีเมลพร้อมระบุช่วงที่วางลงในเนื้อหาอีเมลด้วยเครื่องมือที่น่าทึ่ง

บทช่วยสอนเพิ่มเติมสำหรับการส่งจดหมายใน Excel ...


ส่งอีเมลพร้อมระบุช่วงที่วางลงในเนื้อหาอีเมลใน Excel

รหัส VBA ต่อไปนี้สามารถช่วยให้คุณคัดลอกช่วงและวางลงในเนื้อหาอีเมล Outlook ได้โดยตรงใน Excel กรุณาดำเนินการดังนี้

1. ในแผ่นงานมีช่วงที่คุณต้องการคัดลอกให้กดปุ่ม อื่น ๆ + F11 พร้อมกันเพื่อเปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2. ในการเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน โปรดคลิก เครื่องมือ > อ้างอิง ดังภาพด้านล่างที่แสดง

3 ใน เอกสารอ้างอิง - VBAProject โปรดค้นหาและตรวจสอบไฟล์ ไลบรารีวัตถุของ Microsoft Outlook จากนั้นคลิกตัวเลือก OK ปุ่ม

4 คลิก สิ่งที่ใส่เข้าไป > โมดูลจากนั้นคัดลอกและวางโค้ด VBA ด้านล่างลงในหน้าต่างโมดูล

รหัส VBA: ส่งอีเมลพร้อมกับช่วงที่ระบุไว้ในเนื้อหาอีเมลใน Excel

Sub Send_Email()
'Updated by Extendoffice 20200119
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xEmailBody As String
    Dim xMailOut As Outlook.MailItem
    Dim xOutApp As Outlook.Application    
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    For I = 1 To xRg.Rows.Count
        For J = 1 To xRg.Columns.Count
            xEmailBody = xEmailBody & "  " & xRg.Cells(I, J).value
        Next
        xEmailBody = xEmailBody & vbNewLine
    Next
    xEmailBody = "Hi" & vbLf & vbLf & " body of message you want to add" & vbLf & vbLf & xEmailBody & vbNewLine
    With xMailOut
        .Subject = "Test"
        .To = "happy.xuebi@163.com"
        .Body = xEmailBody
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

หมายเหตุ:

  • 1). โปรดเปลี่ยนเนื้อหาอีเมลในบรรทัด xEmailBody = "สวัสดี" & vbLf & vbLf & "เนื้อหาของข้อความที่คุณต้องการเพิ่ม" & vbLf & vbLf & xEmailBody & vbNewLine ตามที่คุณต้องการ
  • 2). โปรดระบุผู้รับอีเมลและหัวเรื่องของคุณ (. ถึง = happy.xuebi@163.com และ . เรื่อง = "ทดสอบ") บรรทัดในรหัส

5 กด F5 กุญแจสำคัญในการเรียกใช้รหัส ในการโผล่ขึ้นมา Kutools สำหรับ Excel โปรดเลือกช่วงที่คุณต้องการวางในเนื้อหาอีเมลจากนั้นคลิกที่ OK ปุ่ม. ดูภาพหน้าจอ:

6. ตอนนี้อีเมลถูกสร้างขึ้นพร้อมระบุผู้รับหัวเรื่องเนื้อหาและช่วงของ Excel ที่เลือกโปรดคลิกที่ไฟล์ ส่ง เพื่อส่งอีเมลนี้ ดูภาพหน้าจอที่แสดง

หมายเหตุ: รหัส VBA จะใช้งานได้ก็ต่อเมื่อคุณใช้ Outlook เป็นโปรแกรมอีเมลของคุณ


ส่งอีเมลพร้อมระบุช่วงที่วางลงในเนื้อหาอีเมลด้วยเครื่องมือที่น่าทึ่ง

หากคุณไม่ได้ใช้ Outlook และยังต้องการส่งอีเมลโดยตรงใน Excel พร้อมกับวางข้อมูลช่วงที่ระบุไว้ภายในฉันขอแนะนำให้ใช้ไฟล์ ส่งอีเมลล์ ประโยชน์ของ Kutools สำหรับ Excel สำหรับคุณ. ด้วยคุณสมบัตินี้คุณเพียงแค่ต้องกำหนดค่าเซิร์ฟเวอร์ขาออกของที่อยู่อีเมลจากนั้นส่งอีเมลใน Excel โดยตรงผ่านที่อยู่อีเมลนี้ในอนาคต

ก่อนที่จะใช้ Kutools สำหรับ Excelโปรด ดาวน์โหลดและติดตั้งในตอนแรก.

1. ประการแรกคุณต้องเตรียมรายชื่อผู้รับจดหมายพร้อมช่องที่จำเป็น

  • เคล็ดลับ: รายชื่ออีเมลต้องมีอย่างน้อย 2 แถวและแถวแรกต้องเป็นส่วนหัว (สมมติว่าคุณต้องการส่งอีเมลไปยังที่อยู่อีเมลสองแห่งใน Excel โปรดพิมพ์ที่อยู่อีเมลทั้งสองนี้โดยมีส่วนหัว "อีเมล" ตามภาพด้านล่างที่แสดง ).
  • หรือคุณสามารถสร้างรายชื่ออีเมลด้วยไฟล์ สร้างรายชื่อผู้รับจดหมาย ลักษณะ

2. เลือกช่วงที่คุณจะเพิ่มข้อมูลลงในเนื้อหาอีเมลแล้วกดปุ่ม Ctrl + C คีย์เพื่อคัดลอก

3. เลือกรายชื่ออีเมลทั้งหมด (รวมส่วนหัว) คลิก Kutools พลัส > ส่งอีเมลล์. ดูภาพหน้าจอ:

4. จากนั้น ส่งอีเมลล์ กล่องโต้ตอบจะปรากฏขึ้น

  • 4.1) รายการของรายชื่อผู้รับจดหมายที่เลือกจะถูกเติมในฟิลด์ที่เกี่ยวข้อง (คุณสามารถเพิ่มฟิลด์เพิ่มเติมในรายชื่ออีเมลได้ตามที่คุณต้องการ)
  • 4.2) คลิกที่กล่องเนื้อหาอีเมลกดปุ่ม Ctrl + V คีย์เพื่อวางข้อมูลช่วงที่เลือกลงในนั้น หลังจากนั้นให้เพิ่มเนื้อหาอื่น ๆ ตามที่คุณต้องการ
  • 4.3 ยกเลิกการเลือก ส่งอีเมลผ่าน Outlook กล่อง;
  • 2.4) คลิกปุ่ม การตั้งค่าเซิร์ฟเวอร์ขาออก ปุ่ม. ดูภาพหน้าจอ:

5. จากนั้น การตั้งค่าเซิร์ฟเวอร์ขาออก (SMTP) - โครงการใหม่ กล่องโต้ตอบจะปรากฏขึ้น โปรดกรอกที่อยู่อีเมลพร้อมการตั้งค่าเซิร์ฟเวอร์ระบุโฟลเดอร์เพื่อบันทึกอีเมลที่ส่งทั้งหมดหลังจากตรวจสอบไฟล์ บันทึกอีเมลที่ส่งไปที่ จากนั้นคลิกที่ไฟล์ OK เพื่อบันทึกการตั้งค่า

6. เมื่อมันกลับไปที่ ส่งอีเมลล์ ใหคลิกปุ the ม ส่ง ปุ่มเพื่อส่งอีเมล

จากนี้ไปคุณสามารถส่งอีเมลพร้อมฟีเจอร์นี้ใน Excel ได้โดยตรง

  หากคุณต้องการทดลองใช้ฟรี (30วัน) ของโปรแกรมอรรถประโยชน์นี้ กรุณาคลิกเพื่อดาวน์โหลดแล้วไปใช้การดำเนินการตามขั้นตอนข้างต้น


บทความที่เกี่ยวข้อง:

ส่งอีเมลไปยังที่อยู่อีเมลที่ระบุในเซลล์ใน Excel
สมมติว่าคุณมีรายชื่อที่อยู่อีเมลและคุณต้องการส่งข้อความอีเมลไปยังที่อยู่อีเมลเหล่านี้เป็นกลุ่มโดยตรงใน Excel จะบรรลุได้อย่างไร? บทความนี้จะแสดงวิธีการส่งอีเมลไปยังที่อยู่อีเมลหลายรายการซึ่งระบุไว้ในเซลล์ใน Excel

แทรกลายเซ็น Outlook เมื่อส่งอีเมลใน Excel
สมมติว่าคุณต้องการส่งอีเมลโดยตรงใน Excel คุณจะเพิ่มลายเซ็น Outlook เริ่มต้นในอีเมลได้อย่างไร บทความนี้มีสองวิธีในการช่วยคุณเพิ่มลายเซ็น Outlook เมื่อส่งอีเมลใน Excel

ส่งอีเมลพร้อมไฟล์แนบหลายไฟล์แนบใน Excel
บทความนี้พูดถึงการส่งอีเมลผ่าน Outlook พร้อมแนบไฟล์แนบหลายไฟล์ใน Excel

ส่งอีเมลหากตรงตามวันที่ครบกำหนดใน Excel
ตัวอย่างเช่นหากวันที่ครบกำหนดในคอลัมน์ C น้อยกว่าหรือเท่ากับ 7 วัน (วันที่ปัจจุบันคือ 2017/9/13) ให้ส่งการแจ้งเตือนทางอีเมลไปยังผู้รับที่ระบุในคอลัมน์ A พร้อมเนื้อหาที่ระบุในคอลัมน์ B วิธีการ บรรลุเป้าหมาย? บทความนี้จะให้รายละเอียดเกี่ยวกับวิธีการ VBA เพื่อจัดการกับมัน

ส่งอีเมลโดยอัตโนมัติตามค่าเซลล์ใน Excel
สมมติว่าคุณต้องการส่งอีเมลผ่าน Outlook ไปยังผู้รับบางรายตามค่าเซลล์ที่ระบุใน Excel ตัวอย่างเช่นเมื่อค่าของเซลล์ D7 ในแผ่นงานมากกว่า 200 อีเมลจะถูกสร้างขึ้นโดยอัตโนมัติ บทความนี้แนะนำวิธีการ VBA เพื่อให้คุณแก้ไขปัญหานี้ได้อย่างรวดเร็ว

บทช่วยสอนเพิ่มเติมสำหรับการส่งจดหมายใน Excel ...


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel แก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office/Excel 2007-2021 และ 365 รองรับทุกภาษา ง่ายต่อการปรับใช้ในองค์กรหรือองค์กรของคุณ คุณสมบัติเต็มรูปแบบ ทดลองใช้ฟรี 30 วัน รับประกันคืนเงินภายใน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (21)
ได้รับคะแนน 4.5 จาก 5 · การจัดอันดับ 1
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
รหัสนี้ดีมาก แต่ฉันต้องดำเนินการด้วยปุ่มคำสั่งแทนที่จะกด F5 ในมุมมองโค้ด ฉันต้องการให้พนักงานสามารถกรอกข้อมูลบางอย่างได้ จากนั้นให้กดปุ่มและให้คัดลอกช่วงของเซลล์ที่พวกเขากรอกแล้ววางลงในอีเมล ฉันสามารถใช้โค้ดที่ใช้งานได้กับปุ่มอีเมลและแยกกันสำหรับการคัดลอก/วางช่วงของเซลล์ แต่ดูเหมือนจะไม่สามารถรวมทั้งสองฟังก์ชันได้ กรุณาช่วย!!! ขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีไมเคิล
คุณเพียงแค่ต้องสร้างปุ่ม (เช่น ปุ่ม (ตัวควบคุมฟอร์ม)) ในเวิร์กชีตของคุณ จากนั้นกำหนดมาโครให้กับปุ่ม
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีคริสตัล ขอบคุณ!
ฉันมีรหัสที่สร้างขึ้นและสงสัยว่าจะกำหนดปุ่มคำสั่งให้กับรหัสได้อย่างไร โพสต์ของคุณช่วยได้! และรายงานของฉันก็ทำงานอย่างมีเสน่ห์

ขอบคุณอีกครั้ง.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
นี้เป็นสิ่งที่ดี มันทำงานตามที่คาดไว้ ปัญหาเดียวคือรูปแบบของตารางไม่ได้รับการดูแลในจดหมาย คุณช่วยบอกฉันหน่อยได้ไหมว่าเราจะรักษารูปแบบของตารางในอีเมลได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Hi
รหัสนี้แตกต่างกันมากโดยใช้รหัสที่ฉันได้ทำ 90% ของโครงการของฉัน
ฉันมีปัญหาเดียวกับที่ Anirudh กล่าวคือการจัดรูปแบบตาราง ฉันจะจัดรูปแบบตารางในอีเมลได้อย่างไร
โปรดช่วยฉันด้วย......
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอให้เป็นวันที่ดี,
ปัญหายังไม่สามารถแก้ไขได้ ขออภัยในความไม่สะดวกและขอขอบคุณสำหรับความคิดเห็นของคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี มีการปรับปรุงใด ๆ ที่ด้านล่าง.......
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันต้องการรหัสสำหรับ "กรองตามวันที่" ด้วย
ฉันกำลังทำงานในโครงการ ในโครงการนั้น ฉันต้องการกรองข้อมูลตามวันที่ ที่จริงแล้ว เรามีตัวกรอง/ซ่อนและ 05 วันที่ผ่านมาเป็นข้อมูลวันที่ปัจจุบัน และเราได้เน้นข้อมูลอื่นๆ ทั้งหมด
โปรดช่วยฉันทำโครงการนี้ให้เสร็จ
ความช่วยเหลือของคุณยอดเยี่ยมมากสำหรับฉัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
รหัสที่จะส่งโดยอัตโนมัติหลังจากเลือกหลังจากตกลง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
กำลังวางเป็นข้อความ รบกวนแนะนำวิธีการส่งตารางหรือรูปแบบเดียวกับที่คัดลอกมาจาก excel
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันเห็นข้อผิดพลาดในการคอมไพล์ (ไม่ได้กำหนดประเภทที่ผู้ใช้กำหนด" โปรดช่วยฉันเอาชนะสิ่งนี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
โปรดเข้าสู่หน้าต่างอ้างอิงโดยคลิกเครื่องมือ > ข้อมูลอ้างอิง เลื่อนลงเพื่อค้นหาและเลือกช่อง Microsoft Outlook Object Library และคลิกปุ่ม OK เพื่อสิ้นสุดการตั้งค่า
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีผู้เชี่ยวชาญ เรามีข้อมูลอัปเดตเกี่ยวกับวิธีการรักษารูปแบบหรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีเธอ
ไม่สามารถคิดออก ขอโทษสำหรับสิ่งนั้น.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
แทนที่จะเลือกช่วงด้วยตนเอง ฉันต้องการเลือกช่วงโดยอัตโนมัติ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีรามัน
ในโค้ดด้านล่าง โปรดแทนที่ช่วง "A1:C5" ในบรรทัด Set xRg = Range("A1:C5") ด้วยช่วงของคุณเอง

ส่งย่อย_อีเมล()
Dim xRg เป็นช่วง
Dim I, J ตราบ
Dim xAddress เป็นสตริง
Dim xEmailBody เป็นสตริง
Dim xMailOut เป็น Outlook.MailItem
Dim xOutApp เป็น Outlook.Application
เกี่ยวกับข้อผิดพลาดต่อไป
xAddress = ActiveWindow.RangeSelection.Address
ตั้งค่า xRg = ช่วง ("A1:C5")
ถ้า xRg ไม่มีอะไร ให้ออกจาก Sub
Application.ScreenUpdating = เท็จ
ตั้งค่า xOutApp = CreateObject("Outlook.Application")
ตั้งค่า xMailOut = xOutApp.CreateItem(olMailItem)
สำหรับฉัน = 1 ถึง xRg.Rows.Count
สำหรับ J = 1 ถึง xRg.Columns.Count
xEmailBody = xEmailBody & " " & xRg.Cells(I, J).Value
ต่อไป
xEmailBody = xEmailBody & vbNewLine
ต่อไป
xEmailBody = "สวัสดี" & vbLf & vbLf & "เนื้อหาของข้อความที่คุณต้องการเพิ่ม" & vbLf & vbLf & xEmailBody & vbNewLine
ด้วย xMailOut
.Subject = "ทดสอบ"
.To = "happy.xuebi@163.com"
.Body = xEmailBody
.แสดง
'.ส่ง
จบด้วย
ตั้งค่า xMailOut = ไม่มีอะไร
ตั้งค่า xOutApp = Nothing
Application.ScreenUpdating = จริง
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
แทนที่จะเลือกช่วง ฉันต้องการเลือกเดือยหลายอันใน excel
คุณช่วยฉันได้ไหม.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี,
คุณสามารถช่วยฉันด้านล่าง
ฉันได้สร้างแผ่นงาน excel และอัปเดตรายละเอียดอีเมลของผู้จัดหา 10 รายการแล้ว ฉันได้ส่งจดหมายผ่าน excel ไปยังซัพพลายเออร์ทั้ง 10 รายพร้อมไฟล์แนบแผ่นงานแต่ละรายการพร้อมจดหมายแต่ละฉบับ
ฉันต้องการวางข้อมูล excel ในเนื้อหา outlook แทนไฟล์แนบในเมล
ใครก็ได้ช่วยฉันที
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ปัญหาเดียวคือรูปแบบของตารางไม่ได้รับการดูแลในจดหมาย คุณช่วยบอกฉันหน่อยได้ไหมว่าเรารักษารูปแบบของตารางในอีเมลได้อย่างไร ฉันมีปัญหาเดียวกัน คุณช่วยดูให้หน่อยได้ไหมว่าคุณสามารถอัปเดตมันได้ มิฉะนั้นนี่จะดีมาก
ขอบคุณมาก
ได้รับคะแนน 4.5 จาก 5
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี แอนดี้ มิทเชลล์
หากคุณต้องการคงรูปแบบของตารางไว้ สคริปต์ VBA ต่อไปนี้สามารถช่วยคุณได้ กรุณาให้มันลอง ขอขอบคุณ.
Sub Send_Email()
'Updated by Extendoffice 20220616
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xMailOut As Object
    Dim xOutApp As Object
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    With xMailOut
        .Subject = "Test"
        .To = "happy.xuebi@163.com"
        .HTMLBody = RangetoHTML(xRg)
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

 ' The following VBA script is cited from this page:
 ' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

    'Copy the range and create a new workbook to past the data in
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With

    'Publish the sheet to a htm file
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With

    'Read all data from the htm file into RangetoHTML
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.ReadAll
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")

    'Close TempWB
    TempWB.Close savechanges:=False

    'Delete the htm file we used in this function
    Kill TempFile

    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
End Function
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มันทำงานได้อย่างสมบูรณ์ ขอบคุณมาก
ตอนนี้ฉันสามารถเพิ่มการหมุนของฉันเพื่อให้ทำในสิ่งที่ฉันต้องการได้
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ

ช่องทางอื่นๆ

ลิขสิทธิ์© 2009 - wwwextendoffice.com | สงวนลิขสิทธิ์. ขับเคลื่อนโดย ExtendOffice. | แผนผังเว็บไซต์
Microsoft และโลโก้ Office เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft Corporation ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ
ได้รับการปกป้องโดย Sectigo SSL