我在一個文件夾中有100多個文件。每個文件有3個列表,但只有1個包含數據的列表。我需要從每個文件中獲取這些數據,並將其合併到一個列表中的單個文件中。我爲它寫了一個子文件,但我不知道如何去選擇所需的範圍(它隨文件的不同而不同) - 與在Ctrl + Shift + left arrow + down arrow
的鍵盤上一樣。我應該怎樣將它粘貼到結果工作簿中的第一個空行上,然後粘貼之前的數據?Excel vba:在一張紙上合併多個文件
Sub combine()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual
Dim ExcelApp As Object
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = False
ExcelApp.ScreenUpdating = False
ExcelApp.DisplayAlerts = False
ExcelApp.EnableEvents = False
'**VARIABLES**
Dim folderPath As String
folderPath = "Y:\plan_graphs\final\mich_alco_test\files\"
'COUNT THE FILES
Dim totalFiles As Long
totalFiles = 0
Dim fileTitle As String
fileTitle = Dir(folderPath & "*.xl??")
Do While fileTitle <> ""
totalFiles = totalFiles + 1
fileTitle = Dir()
Loop
'OPENING FILES
Dim resultWorkbook As Workbook
Dim dataWorkbook As Workbook
Set resultWorkbook = ExcelApp.Application.Workbooks.Open("Y:\plan_graphs\final\mich_alco_test\result.xlsx")
fileTitle = Dir(folderPath & "*.xl??")
'FOR EACH FILE
Do While fileTitle <> ""
Set dataWorkbook = ExcelApp.Application.Workbooks.Open(folderPath & fileTitle)
dataWorkbook.Worksheets("List1").Range("A1").Select
dataWorkbook.Worksheets("List1").Selection.CurrentRegion.Select
`resultWorkbook.Range
fileTitle = Dir()
Loop
ExcelApp.Quit
Set ExcelApp = Nothing
End Sub
爲什麼你當前的應用程序實例中創建一個新的應用程序實例? –
@Robin Mackenzie讓它看不見。 – Ans
當你談論一個列表時 - 你的意思是不同的工作表,或單個工作表或ListObject中的列嗎? –