Excel VBA – 导入多个xlsx工作表并追加到主工作簿表

我正在尝试将多个XLSX / XLS工作表导入到我的Master Workbook的“临时”工作表中,每个工作簿内容都应该在最后一项之后添加。

这只适用于一个文件,但我似乎无法找出所有选定的工作簿循环背后的逻辑。 另外,考虑到性能和速度,在select之后打开所有select的工作簿是明智的,还是应该在导入前一个文件之后打开它们呢?

将不胜感激您的亲切帮助。

编辑:为了更精确一点,脚本的问题是我应该通过所有打开的工作簿看的部分。 build议任何人?

For Each Workbooks In lngCount With Workbooks .Sheets(1).Cells.Copy Destination:=MasterWB.Sheets("temp").Range("A65536").End(xlUp).Offset(1, 0) .Close False End With Next 

完整的VBA代码:

 Sub import_XLS() Dim wb As Workbook Dim lngCount As Long ' speed up by turning screenupdating off Application.ScreenUpdating = False ' set workbooks Set MasterWB = ActiveWorkbook With ActiveWorkbook.Sheets("temp") .Visible = True .Cells.Delete End With ' Open the file dialog With Application.FileDialog(msoFileDialogOpen) .InitialFileName = "" .Title = "Please select the converted User Activity files for import" .Filters.Add "Excel Files", "*.xls; *.xlsx", 1 '.Filters.Add "Excel Files", "*.xls", 1 .AllowMultiSelect = True If .Show = -1 Then ' Open the files For lngCount = 1 To .SelectedItems.Count Workbooks.Open .SelectedItems(lngCount) Next lngCount Else Exit Sub End If End With ' open selected workbook in read only and copy all cells of worksheet 1 For Each Workbooks In lngCount With Workbooks .Sheets(1).Cells.Copy Destination:=MasterWB.Sheets("temp").Range("A65536").End(xlUp).Offset(1, 0) .Close False End With Next ' hide temp sheet, close workbook without saving changes and free memory 'MasterWB.Sheets("temp").Visible = False 'wb.Close False Set wb = Nothing End Sub 

 Dim wb As Workbook .... For Each wb In Workbooks with wb if .name <>MasterWB.Name .... end with Next wb