Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

Mail Merge ระหว่างไฟล์ Excel: คู่มือทีละขั้นตอนที่มีประสิทธิภาพ

บ่อยครั้ง ผู้ใช้มีข้อมูลส่งจดหมายของลูกค้า 1-2 รายในไฟล์ Excel จึงต้องดึงข้อมูลอื่นๆ ที่ตรงกับข้อมูลเดิมในไฟล์ที่ใช้งานอยู่ ในกรณีนี้ จะพยายาม mail merge จาก Excel ไป Excel VBA Macro ของ Excel สามารถทำ mail merge ได้อย่างง่ายดาย

สมมติผู้ใช้ทำงานบน Excel Workbook ที่มีเพียงข้อมูลส่งจดหมายเดียว (เช่น Email Address) มีอีกไฟล์หนึ่ง ที่มีข้อมูลส่งจดหมายครบถ้วนสำหรับรายการใน Workbook ที่ใช้งานอยู่

Mail Merge ระหว่างไฟล์ Excel: คู่มือทีละขั้นตอนที่มีประสิทธิภาพ

บทความนี้สาธิต VBA Macro เพื่อ mail merge จาก Excel ไป Excel

ดาวน์โหลดสมุดงาน Excel

สมุดงานข้อมูลส่งจดหมายไม่ครบ

สมุดงานข้อมูลส่งจดหมายที่มีอยู่

VBA Macro สำหรับ Mail Merge จาก Excel ไป Excel

เนื่องจากต้อง merge ไฟล์ที่ใช้งานอยู่กับไฟล์ที่มีข้อมูลอยู่แล้ว ต้องใช้ VBA Macro code

ข้อมูลส่งจดหมายที่มีอยู่ใน Excel Workbook

สมมติข้อมูลส่งจดหมายที่มีอยู่ อาจเป็นดังภาพด้านล่าง ข้อมูลอาจมีหลายร้อยแถวและหลายสิบคอลัมน์ เพื่อการนำเสนอ ใช้ 2-3 แถว และไม่กี่คอลัมน์ ตั้งชื่อ Workbook นี้ว่า Mail_Data มีชีทเดียวชื่อ Mail Data

Mail Merge ระหว่างไฟล์ Excel: คู่มือทีละขั้นตอนที่มีประสิทธิภาพ

อ่านเพิ่มเติม: วิธี Mail Merge จาก Excel ไป Outlook พร้อมไฟล์แนบ (2 ตัวอย่าง)

ข้อมูลส่งจดหมายที่ต้องการในอีก Workbook

มี Excel Workbook อีกไฟล์ ที่มีเพียง 4 หรือ 5 ที่อยู่อีเมล ต้องการ merge กับ workbook ก่อนหน้า เพื่อเติมข้อมูลในเซลล์ว่างให้ครบอัตโนมัติ

Mail Merge ระหว่างไฟล์ Excel: คู่มือทีละขั้นตอนที่มีประสิทธิภาพ

อ่านเพิ่มเติม: วิธี Mail Merge จาก Excel ไป Outlook (ขั้นตอนง่ายๆ)

VBA Macro สำหรับ Mail Merge จาก Excel ไป Excel

เนื่องจากต้อง merge active workbook กับ workbook ที่มีอยู่ ต้องใช้ VBA Macro code

ขั้นตอนที่ 1: กด ALT+F11 หรือไป Developer > Visual Basic เปิด Microsoft Visual Basic window คลิก Insert > Module แทรก Module

Mail Merge ระหว่างไฟล์ Excel: คู่มือทีละขั้นตอนที่มีประสิทธิภาพ

ขั้นตอนที่ 2: วาง macro ต่อไปนี้ใน Module

Sub Mail_Merge_From_Excel_to_Excel() 
    Book1_Path = "C:\Users\maruf\Desktop\Softeko\Mail Merge from Excel to Excel\Mail_Data.xlsx" 
    Book1_Name = "Mail_Data" 
    Book2_Name = "Mail_Merge" 
    Sheet1_Name = "Mail Data" 
    Sheet2_Name = "Mail Merge" 
    No_of_Columns = 9 
    Workbooks.Open Book1_Path 
    Set Rng1 = Workbooks(Book1_Name).Worksheets(Sheet1_Name).UsedRange 
    Set Rng2 = Workbooks(Book2_Name).Worksheets(Sheet2_Name).UsedRange 
    For i = 1 To Rng2.Rows.Count 
        For j = 1 To Rng1.Rows.Count 
            If Rng1.Cells(j, No_of_Columns) = Rng2.Cells(i, No_of_Columns) Then 
                For k = 1 To No_of_Columns - 1 
                    Rng2.Cells(i, k) = Rng1.Cells(j, k) 
                Next k 
                Exit For 
            End If 
        Next j 
    Next i 
End Sub

Mail Merge ระหว่างไฟล์ Excel: คู่มือทีละขั้นตอนที่มีประสิทธิภาพ

➤ จากภาพ หมายเลขส่วนต่างๆ หมายถึง

1 – เริ่ม macro code ประกาศชื่อ Sub ของ VBA Macro Code

2 – กำหนด path ของ workbook ที่มีอยู่ในอุปกรณ์ กำหนดชื่อตัวแปรและหมายเลขคอลัมน์

3 – เปิด workbook ที่มีอยู่ด้วยคำสั่ง Workbooks.Open

4 – กำหนดช่วง (ranges) ให้ workbook และชีตต่างๆ

5 – รัน VBA FOR loop แบบ nested เพื่อ merge data เมื่อเงื่อนไขของ VBA IF statement ถูกต้อง

ขั้นตอนที่ 3: หลังใส่โค้ด ใช้ F5 หรือคลิก Run > Run Sub/UserForm รัน macro

Mail Merge ระหว่างไฟล์ Excel: คู่มือทีละขั้นตอนที่มีประสิทธิภาพ

🔺 ทันที Excel จะเปิด Mail_Data Workbook ที่ปิดอยู่

Mail Merge ระหว่างไฟล์ Excel: คู่มือทีละขั้นตอนที่มีประสิทธิภาพ

🔺 กลับไปที่ Merge_Data workbook ดูการเปลี่ยนแปลง จะเห็น Excel merge ข้อมูลส่งจดหมายของรายการที่มีอยู่ ตามที่ต้องการ

Mail Merge ระหว่างไฟล์ Excel: คู่มือทีละขั้นตอนที่มีประสิทธิภาพ

อ่านเพิ่มเติม: Macro to Populate a Mail Merge Document from Excel

สรุป

ในบทความนี้ สาธิต VBA Macro Code สำหรับ mail merge จาก Excel ไป Excel วิธีนี้ควรตอบโจทย์ความต้องการของคุณ ทิ้งความคิดเห็นหากมีข้อสงสัยหรือข้อเสนอแนะ

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

  • Macro to Populate a Mail Merge Document from Excel
  • วิธีเปลี่ยนรูปแบบวันที่ใน Excel Mail Merge (ขั้นตอนเร็ว)
  • วิธีรวมไฟล์ Excel เพื่อฉลากส่งจดหมาย (ขั้นตอนง่ายๆ)
  • Mail Merge จาก Excel ไป Word Envelopes (2 วิธีง่ายๆ)
  • วิธี Mail Merge รูปภาพจาก Excel ไป Word (2 วิธีง่ายๆ)

.