vba 快速合并当前文件夹内多个excel的指定工作表到同一个excel的同名工作表并打开,避免内容为空
时间: 2023-07-29 15:11:38 浏览: 167
为了快速合并当前文件夹内多个Excel的指定工作表到同一个Excel的同名工作表并打开,您可以使用以下VBA代码:
```
Sub MergeExcelFiles()
Dim Path As String
Dim Filename As String
Dim SheetName As String
Dim MasterBook As Workbook
Dim SourceBook As Workbook
Dim Sheet As Worksheet
Dim NewSheet As Worksheet
'设置工作表名称
SheetName = "Sheet1"
'获取当前文件夹路径
Path = ActiveWorkbook.Path & "\"
'打开主工作簿
Set MasterBook = Workbooks.Open(Path & "Master.xlsx")
'循环遍历当前文件夹内的Excel文件
Filename = Dir(Path & "*.xls*")
Do While Filename <> ""
'排除主工作簿
If Filename <> MasterBook.Name Then
'打开源工作簿
Set SourceBook = Workbooks.Open(Path & Filename)
'检查指定工作表是否存在
On Error Resume Next
Set Sheet = SourceBook.Sheets(SheetName)
On Error GoTo 0
'复制指定工作表
If Not Sheet Is Nothing Then
Set NewSheet = MasterBook.Sheets(SheetName)
Sheet.UsedRange.Copy Destination:=NewSheet.Range("A1")
End If
'关闭源工作簿
SourceBook.Close False
End If
'获取下一个文件名
Filename = Dir()
Loop
'保存并关闭主工作簿
MasterBook.Save
MasterBook.Close
'打开合并后的工作簿
Workbooks.Open(Path & "Master.xlsx")
End Sub
```
在上述代码中,我们使用了相同的工作表名称以避免创建新的工作表。我们也检查了指定工作表是否存在,以避免复制空工作表。我们使用了`.UsedRange`来找到使用的范围,并将其复制到主工作簿中的相应工作表中,以确保所有内容都被复制。这些修改应该可以帮助您避免内容为空的问题。
阅读全文