合并工作薄并保留工作薄来源
时间: 2023-12-15 20:07:15 浏览: 29
您好!以下是一个可以合并工作簿并保留工作簿来源的VBA代码。它会在目标工作簿中创建一个包含所有源工作簿的工作表,并在每个源工作簿的名称后添加一个标识符,以便您可以轻松区分每个源工作簿的数据。
```VBA
Sub Merge_Workbooks_With_Source()
Dim FolderPath As String
Dim Filename As String
Dim Sheet As Worksheet
Dim SourceWorkbook As Workbook
Dim DestinationWorkbook As Workbook
Dim NewSheet As Worksheet
'设置文件夹路径
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)
'在目标工作簿中创建新工作表
Set NewSheet = DestinationWorkbook.Worksheets.Add(After:=DestinationWorkbook.Worksheets(DestinationWorkbook.Worksheets.Count))
'将源工作簿的名称添加到新工作表名称中
NewSheet.Name = SourceWorkbook.Name & " Data"
'复制每个工作表到新工作表
For Each Sheet In SourceWorkbook.Sheets
Sheet.Copy After:=NewSheet
Next Sheet
'关闭源工作簿
SourceWorkbook.Close
'继续下一个文件
Filename = Dir()
Loop
'重新启用屏幕更新
Application.ScreenUpdating = True
End Sub
```
请注意,此代码会在目标工作簿中创建新的工作表,而不是在现有的工作表中合并数据。如果您需要在现有工作表中合并数据,请根据需要进行修改。