vba 快速合并当前文件夹内多个excel的指定工作表并打开,可避免1004运行错误
时间: 2023-11-29 12:07:18 浏览: 44
当处理多个Excel文件时,确实可能会遇到1004运行错误。为了避免这个问题,您可以使用以下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.Add(after:=MasterBook.Sheets(MasterBook.Sheets.Count))
Sheet.Copy After:=NewSheet
End If
'关闭源工作簿
SourceBook.Close False
End If
'获取下一个文件名
Filename = Dir()
Loop
'保存并关闭主工作簿
MasterBook.Save
MasterBook.Close
'打开合并后的工作簿
Workbooks.Open(Path & "Master.xlsx")
End Sub
```
在上述代码中,我们添加了一个错误处理语句,以确保在检查指定工作表是否存在时不会出现1004运行错误。同时,我们在复制指定工作表时,将其插入到新的工作表中,以避免1004运行错误。这些修改应该可以帮助您避免1004运行错误。