snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
Sub CollectDataFromMultipleFiles()
Dim wb As Workbook, s As Worksheet, db As Workbook
Dim strPath As Variant, i As Integer, f As Byte
Dim sh As Worksheet
strPath = Application.GetOpenFilename( _
FileFilter:="Excel File (*.xls*),*.xls*", _
MultiSelect:=True)
If TypeName(strPath) = "Boolean" Then Exit Sub
Set db = ThisWorkbook
Application.ScreenUpdating = False
For i = 1 To UBound(strPath)
Set wb = Workbooks.Open(Filename:=strPath(i), UpdateLinks:=False)
With db
.Worksheets.Add After:=.Worksheets(.Worksheets.Count)
Set sh = .Worksheets(.Worksheets.Count)
sh.Name = wb.Name
wb.Sheets(1).UsedRange.Copy sh.Range("a1")
End With
wb.Close , False
Application.CutCopyMode = False
Next i
Application.ScreenUpdating = True
MsgBox "Finished", vbInformation
End Sub
Sub CollectDataFromMultipleFiles()
Dim wb As Workbook, s As Worksheet, db As Workbook
Dim strPath As Variant, i As Integer, f As Byte
Dim sh As Worksheet
strPath = Application.GetOpenFilename( _
FileFilter:="Excel File (*.xls*),*.xls*", _
MultiSelect:=True)
If TypeName(strPath) = "Boolean" Then Exit Sub
Set db = ThisWorkbook
Application.ScreenUpdating = False
For i = 1 To UBound(strPath)
Set wb = Workbooks.Open(Filename:=strPath(i), UpdateLinks:=False)
With db
.Worksheets.Add After:=.Worksheets(.Worksheets.Count)
Set sh = .Worksheets(.Worksheets.Count)
sh.Name = wb.Name
wb.Sheets(1).UsedRange.Copy sh.Range("a1")
End With
wb.Close , False
Application.CutCopyMode = False
Next i
Application.ScreenUpdating = True
MsgBox "Finished", vbInformation
End Sub
Sub CollectDataFromMultipleFiles()
Dim wb As Workbook, s As Worksheet, db As Workbook
Dim strPath As Variant, i As Integer, f As Byte
Dim sh As Worksheet
strPath = Application.GetOpenFilename( _
FileFilter:="Excel File (*.xls*),*.xls*", _
MultiSelect:=True)
If TypeName(strPath) = "Boolean" Then Exit Sub
Set db = ThisWorkbook
Application.ScreenUpdating = False
For i = 1 To UBound(strPath)
Set wb = Workbooks.Open(Filename:=strPath(i), UpdateLinks:=False)
With db
.Worksheets.Add After:=.Worksheets(.Worksheets.Count)
Set sh = .Worksheets(.Worksheets.Count)
sh.Name = wb.Name
wb.Sheets(1).UsedRange.Copy sh.Range("a1")
End With
wb.Close , False
Application.CutCopyMode = False
Next i
Application.ScreenUpdating = True
MsgBox "Finished", vbInformation
End Sub