snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
Sub simpleXlsMerger4()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
Set dirObj = mergeObj.Getfolder(Sheets("Sheet4").Range("A1"))
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
bookList.Sheets(1).Range("A1:Q" & bookList.Sheets(1).Range("I65536").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(3).Activate
If Range("Q65536").End(xlUp).Offset(1, -16).Row = 1 Then
Range("a1").PasteSpecial
Else
Range("Q65536").End(xlUp).Offset(2, -16).PasteSpecial
End If
Application.CutCopyMode = False
bookList.Close False
Next
Application.ScreenUpdating = True
End Sub
Sub simpleXlsMerger4()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
Set dirObj = mergeObj.Getfolder(Sheets("Sheet4").Range("A1"))
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
bookList.Sheets(1).Range("A1:Q" & bookList.Sheets(1).Range("I65536").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(3).Activate
If Range("Q65536").End(xlUp).Offset(1, -16).Row = 1 Then
Range("a1").PasteSpecial
Else
Range("Q65536").End(xlUp).Offset(2, -16).PasteSpecial
End If
Application.CutCopyMode = False
bookList.Close False
Next
Application.ScreenUpdating = True
End Sub
Sub simpleXlsMerger4()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
Set dirObj = mergeObj.Getfolder(Sheets("Sheet4").Range("A1"))
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
bookList.Sheets(1).Range("A1:Q" & bookList.Sheets(1).Range("M65536").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(3).Activate
If Range("M65536").End(xlUp).Row = 1 Then
Range("a1").PasteSpecial
Else
Range("M65536").End(xlUp).Offset(1, -12).PasteSpecial
End If
Application.CutCopyMode = False
bookList.Close False
Next
Application.ScreenUpdating = True
End Sub