vba 快速合并当前文件夹内多个excel的指定工作表到同一个excel的同名工作表,可避免下标越界
时间: 2023-07-28 13:07:32 浏览: 143
vba合并同一文件夹下的excel
好的,这是一个关于 VBA 编程的问题,我会尽力回答。首先,你需要明确你要合并的工作表的名称和数量。然后,可以使用以下代码来实现你的需求:
```vba
Sub MergeWorksheets()
Dim Path As String, Filename As String, Sheet As Worksheet
Dim i As Integer, j As Integer, k As Integer
Application.ScreenUpdating = False
'获取当前文件夹路径
Path = ThisWorkbook.Path & "\"
'循环当前文件夹内的所有文件
Filename = Dir(Path & "*.xlsx")
Do While Filename <> ""
'打开当前文件
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
'循环当前文件内的所有工作表
For i = 1 To Worksheets.Count
'查找同名工作表
For j = 1 To ThisWorkbook.Worksheets.Count
If ThisWorkbook.Worksheets(j).Name = Worksheets(i).Name Then
'合并工作表
For k = 1 To Worksheets(i).UsedRange.Rows.Count
ThisWorkbook.Worksheets(j).Range("A" & ThisWorkbook.Worksheets(j).UsedRange.Rows.Count + k) _
.Value = Worksheets(i).Range("A" & k).Value
Next k
Exit For
End If
Next j
Next i
'关闭当前文件
Workbooks(Filename).Close
'获取下一个文件名
Filename = Dir
Loop
Application.ScreenUpdating = True
End Sub
```
以上代码会循环当前文件夹内的所有 Excel 文件,合并指定工作表到同一个 Excel 的同名工作表中。你只需要将代码中的文件路径和工作表名称修改为你自己的即可。
希望能够帮到你!
阅读全文