เมื่อทำงานกับไฟล์ Excel บ่อยครั้งที่เราต้องจัดการกับไฟล์ CSV หลายไฟล์ พร้อมกัน การรวมไฟล์ CSV เหล่านี้เข้าด้วยกันในสมุดงาน (Workbook) เดียว โดยแยกเป็นชีท (Worksheet) ต่างกัน จึงกลายเป็นความต้องการที่พบบ่อย ในบทความนี้จะแนะนำขั้นตอนทั้งหมดในการรวมไฟล์ CSV หลายไฟล์ให้กลายเป็นชีทหลายชีทใน Excel ได้อย่างง่ายดาย
คุณสามารถดาวน์โหลดไฟล์ CSV ตัวอย่างและไฟล์ที่รวมแล้วได้ที่นี่โดยไม่มีค่าใช้จ่าย
ไฟล์ CSV ต้นทาง:
ไฟล์ที่รวมแล้ว:
ขั้นตอนการรวมไฟล์ CSV เป็นชีท Excel หลายชีท
สมมติว่าคุณมีสมุดงาน Excel แยกกัน 3 ไฟล์ สำหรับบัตรรายงานนักเรียนชั้นมัธยมศึกษาปีที่ 1, 2, และ 3 ซึ่งเก็บข้อมูลชื่อวิชาและคะแนนของนักเรียนหลายคน ไฟล์เหล่านี้อยู่ในรูปแบบ CSV ตอนนี้คุณต้องการรวมสมุดงานทั้งหมดเข้าเป็นสมุดงานเดียวที่มีหลายชีท ให้ทำตามขั้นตอนด้านล่างนี้

📌 ขั้นตอนที่ 1: เตรียมโมดูลสำหรับรหัส VBA
ขั้นแรก คุณต้องแทรกและเตรียมโมดูลสำหรับการใช้งานรหัส VBA
- ไปที่แท็บ Developer >> เลือกเครื่องมือ Visual Basic

- หน้าต่าง VB Editor จะเปิดขึ้น
- ไปที่แท็บ Insert และเลือก Module

ตอนนี้คุณมีโมดูลพร้อมสำหรับใส่รหัส VBA แล้ว
อ่านเพิ่มเติม: Excel VBA: อ่านไฟล์ CSV เข้า Array (4 ตัวอย่างที่เหมาะสม)
📌 ขั้นตอนที่ 2: เขียนและบันทึกรหัส VBA
ต่อไป ต้องใส่รหัส VBA ลงไป
- คลิกที่ Module 1
- วางรหัสต่อไปนี้ใน VB Editor ของ Module 1
Sub MergeCSVFiles()
Dim openFiles As Variant
Dim I As Integer
Dim wb As Workbook
Dim mergedWb As Workbook
Dim delimiter As String
Dim screen As Boolean
On Error GoTo ErrHandler
screen = Application.ScreenUpdating
Application.ScreenUpdating = False
delimiter = ";"
openFiles = Application.GetOpenFilename("CSV Files (*.csv), *.csv", , "Merge CSV Files", , True)
If TypeName(openFiles) = "Boolean" Then
MsgBox "No files were selected", , "Merge CSV Files"
GoTo ExitHandler
End If
I = 1
Set mergedWb = Workbooks.Open(openFiles(I))
mergedWb.Sheets(1).Copy
Set wb = Application.ActiveWorkbook
mergedWb.Close False
Do While I < UBound(openFiles)
I = I + 1
Set mergedWb = Workbooks.Open(openFiles(I))
mergedWb.Sheets(1).Move , wb.Sheets(wb.Sheets.Count)
Loop
ExitHandler:
Application.ScreenUpdating = screen
Set wb = Nothing
Set mergedWb = Nothing
Exit Sub
ErrHandler:
MsgBox Err.Description, , "Merge CSV Files"
Resume ExitHandler
End Sub
- กด Ctrl + S เพื่อบันทึกรหัส VBA

- กล่องโต้ตอบ Microsoft Excel จะปรากฏขึ้น
- คลิกปุ่ม No

- หน้าต่าง Save As จะแสดงขึ้น
- เปลี่ยน Save as type: เป็น .xlsm และคลิก Save

รหัส VBA ของคุณพร้อมใช้งานแล้ว
อ่านเพิ่มเติม: Excel VBA: อ่านไฟล์ CSV บรรทัดต่อบรรทัด (3 ตัวอย่างที่เหมาะสม)
เนื้อหาเกี่ยวข้อง
- วิธีนำเข้าไฟล์ข้อความเข้าสู่ Excel ด้วย VBA (3 วิธีง่าย)
- วิธีเปิด Notepad หรือไฟล์ข้อความใน Excel พร้อมคอลัมน์ (3 วิธีง่าย)
- Excel VBA: อ่านไฟล์ข้อความเข้าสตริง (4 กรณีที่มีประสิทธิภาพ)
- วิธีแปลง CSV เป็น XLSX (4 วิธีรวดเร็ว)
- วิธีอ่านไฟล์ CSV ใน Excel (4 วิธีที่เร็วที่สุด)
📌 ขั้นตอนที่ 3: รันรหัสเพื่อรวมไฟล์ CSV
สุดท้าย ให้รันรหัส VBA เพื่อรวมไฟล์ CSV เป็นชีทหลายชีท
- ไปที่แท็บ Developer >> เครื่องมือ Macros

- หน้าต่าง Macro จะเปิดขึ้น
- เลือกแมโคร MergeCSVFiles จากช่อง Macro name: และคลิก Run

- สมุดงานทั้งหมดจะถูกรวมเป็นสมุดงานใหม่ที่มีชีทต่างกัน

- เพื่อบันทึกไฟล์ Excel ให้ไปที่แท็บ File

- คลิก Save As จากเมนู File

- กล่องโต้ตอบ Save As ของ Excel จะปรากฏ
- คลิก Browse

- กล่องโต้ตอบ Save As จะแสดงขึ้นอีกครั้ง
- ใส่ชื่อไฟล์ที่ต้องการในช่อง File name: และคลิก Save

ตอนนี้ไฟล์ CSV ถูกรวมเป็นชีทหลายชีทในสมุดงานเดียวแล้ว ผลลัพธ์สุดท้ายจะมีลักษณะดังภาพ

อ่านเพิ่มเติม: วิธีนำเข้า CSV เข้าชีทที่มีอยู่ใน Excel (5 วิธี)
การใช้ Power Query รวมไฟล์ CSV เป็นชีทเดียวใน Excel
หากต้องการรวมไฟล์ CSV หลายไฟล์เป็น ชีทเดียว ใน Excel สามารถใช้เครื่องมือ Power Query ได้ ดำเนินการตามขั้นตอนด้านล่าง
📌 ขั้นตอน:
- ไปที่แท็บ Data >> Get Data >> From File >> From Folder

- หน้าต่าง Browse จะเปิดขึ้น
- เลือกโฟลเดอร์ที่เก็บไฟล์ CSV ไว้
- คลิก Open

- หน้าต่าง Power Query จะเปิดและแสดงไฟล์ CSV ที่จะนำเข้า
- คลิกปุ่ม Combine >> Combine & Transform Data

- หน้าต่าง Combine Files จะปรากฏ
- ดูตัวอย่างข้อมูลและเลือก Delimiter เป็น Semicolon ตามข้อมูลของคุณ
- คลิก OK

- ข้อมูลที่รวมแล้วจะแสดงในหน้าต่าง Power Query

- ไปที่แท็บ File ใน Power Query >> คลิก Close & Load >> Close & Load

ผลลัพธ์: ไฟล์ CSV ทั้งหมดถูกรวมเป็นชีทเดียวใน Excel แล้ว

อ่านเพิ่มเติม: วิธีเปิด CSV ด้วย Delimiter ใน Excel (6 วิธีง่าย)
💬 สิ่งที่ควรจำ
- ใช้ตัวคั่น (delimiter) เดียวกันสำหรับทุกไฟล์และทุกข้อมูล
- ไฟล์ CSV ทั้งหมดควรมีโครงสร้างเหมือนกัน (แถวและคอลัมน์ตรงกัน)
สรุป
ในบทความนี้ได้แสดงขั้นตอนทั้งหมดในการรวมไฟล์ CSV เป็นชีทหลายชีทใน Excel แล้ว ขอแนะนำให้อ่านครบทุกส่วนและลองทำตาม ขอหวังว่าบทความนี้จะเป็นประโยชน์ หากมีคำถามหรือข้อเสนอแนะ สามารถ留言ได้ที่นี่
เยี่ยมชม ExcelDemy เพื่อเรียนรู้เทคนิค Excel อื่นๆ อีกมากมาย ขอบคุณครับ!
บทความเกี่ยวข้อง
- วิธีดูไฟล์ CSV ใน Excel (3 วิธีที่มีประสิทธิภาพ)
- ความแตกต่างระหว่างไฟล์ CSV และ Excel (11 ตัวอย่าง)
- แปลง CSV เป็น Excel อัตโนมัติ พร้อมขั้นตอนง่ายๆ
- [แก้ไขแล้ว:] Excel เปิดไฟล์ CSV ในคอลัมน์เดียว (3 วิธีแก้)
- วิธีแปลง CSV เป็น XLSX ผ่าน Command Line (พร้อมขั้นตอน)
- Excel VBA: อ่านไฟล์ข้อความบรรทัดต่อบรรทัด (6 ตัวอย่าง)