用VBA编写合并文件夹内所有工作簿内容至目标工作簿
时间: 2024-03-08 15:49:03 浏览: 187
您好!以下是一个可以将文件夹中的所有工作簿合并到目标工作簿中的VBA代码。它会将每个工作簿的所有工作表复制到目标工作簿中,并在每个工作表名称前添加工作簿名称的前缀,以便您可以轻松区分每个工作簿的数据。
```VBA
Sub Merge_Workbooks_In_Folder()
Dim FolderPath As String
Dim Filename As String
Dim Sheet As Worksheet
Dim SourceWorkbook As Workbook
Dim DestinationWorkbook As Workbook
'设置文件夹路径
FolderPath = "C:\Users\Username\Documents\Excel Files\"
'打开目标工作簿
Set DestinationWorkbook = ThisWorkbook
'关闭屏幕更新以加快执行速度
Application.ScreenUpdating = False
'循环遍历文件夹中的所有Excel文件
Filename = Dir(FolderPath & "*.xls*")
Do While Filename <> ""
'打开源工作簿
Set SourceWorkbook = Workbooks.Open(FolderPath & Filename)
'复制每个工作表到目标工作簿,并添加工作簿名称前缀
For Each Sheet In SourceWorkbook.Sheets
Sheet.Copy After:=DestinationWorkbook.Sheets(DestinationWorkbook.Sheets.Count)
DestinationWorkbook.Sheets(DestinationWorkbook.Sheets.Count).Name = SourceWorkbook.Name & " - " & Sheet.Name
Next Sheet
'关闭源工作簿
SourceWorkbook.Close
'继续下一个文件
Filename = Dir()
Loop
'重新启用屏幕更新
Application.ScreenUpdating = True
End Sub
```
请注意,此代码将仅复制工作表,而不会保留工作簿中的任何其他元素(如宏、工作表之外的数据等)。如果您需要保留其他元素,请根据需要进行修改。
阅读全文