การนำข้อมูล Excel หลาย ๆ ไฟล์มาต่อกัน

ในที่นี่จะใช้ VBA ในการช่วยทำ ซึ่งจะง่ายมาก ๆ ในที่นี้กระผมได้ใช้ Excel 2010 ในการทำไฟล์ที่หมดที่ผมต้องการนำเข้าไปอยู่ใน Sheet เดียวกัน ถ้าจะ Copy เองนี่อ้วกแน่นวล ต้องหามือขยันมาช่วยหน่อย อิอิ ..

เอ้าไป ๆ ๆ ลุย ๆ

1.  เปิด Excel ขึ้นมาก่อนเลยครับ
2. ไปที่เมนู Developer คลิกเลือก Visual Basic

3.  คลิกเลือก New Module และใส่ Code

Sub GetSheets()
Path = "C:\Users\CyberJoie\Desktop\Class"
Filename = Dir(Path & "*.xls")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub

ใส่ code เสร็จแล้ว กด Run Code นี้จะทำการนำทุก Sheets ที่มีอยู่ในแต่ละไฟล์มารวมกันไว้ที่ไฟล์เดียว

4. ทีนี้เราก็จะรวมทุก Sheets ให้เป็น Sheet เดียวโดยเปลี่ยน VBA Code เป็น

Sub CollectData()
Dim ws As Worksheet
Dim r As Range
Dim rTarget As Range
Dim DataAll As String
DataAll = "Sheet1"
Application.ScreenUpdating = False
For Each ws In Worksheets
If ws.Name <> DataAll Then
With Sheets(DataAll)
Set rTarget = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
End With
Set r = ws.Range("A2", ws.Range("A" & Rows.Count).End(xlUp))
r.SpecialCells(xlCellTypeConstants).EntireRow.Copy
rTarget.PasteSpecial xlPasteValues
End If
Next ws
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

เสร็จแล้วกด Run เหมือนเดิม Code ก็จะเอาข้อมูลทุก Sheets มารวมกันไว้ที่ Sheet เดียวให้โดยอัตโนมัติ

//จบ

One thought on “การนำข้อมูล Excel หลาย ๆ ไฟล์มาต่อกัน

  • February 1, 2018 at 11:17 am
    Permalink

    หากต้องการกำหนดว่าต้องการทำกับ Sheet ใด ๆ โดยเฉพาะก็ให้ระบุชื่อ Sheet นั้นไปได้เช่น

    Set Sheet = ActiveWorkbook.Sheets(“ชื่อ Sheet”)

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Share
Tweet
Pin
+1
Share
0 Shares