问题1:大量?Excel工作簿?工作表?
可以说,一个Excel表就是一个Excel工作簿,而一个工作簿中可以包含多个工作表(即sheet1, sheet2,等)
合并步骤:
1. 将需要合并的工作簿全部放在同一个文件夹下面;
2. 新建一个工作簿,如merge,其他工作簿将被合并到这个工作簿中。
3. 开打merge, 点击开发工具 >> Visual Basic >> 插入 >> 模块,将下面的代码输入模块窗口中
4. 点击运行!!
Sub GetSheets()
Path = "C:\Users\Lenovo\Desktop\tt\"
Filename = Dir(Path & "test*.xls")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
- 提示:
- 在上面的代码里,你可以将目录路径更换成你自己使用的路径,tt是文件夹,后面加 ’ \ ’ 。
Path = C:\Users\Lenovo\Desktop\tt\
以通配符替换到需要合并的文件的文件名;
Filename = Dir(Path & “test*.xls”) - 然后点击 运行 按钮运行代码,工作簿里的全部工作表(包括空白工作表)都将被合并到主工作簿里。
- 注意:
这个VBA 代码能将整个工作簿合并到主工作簿中,但是不能 针对指定的工作表进行合并。


问题2:少量合并的方法
1. 将需要合并的工作簿全部打开,否则下一步是检测不到的。
2. 选择其中一个工作簿,在左下角的sheet中点击 右键 >> 移动和复制 >> 选择目标工作簿即可

问题3:将一个工作簿中的多个工作表sheet合并到一个里面
1. 在当前工作簿中新添加一个sheet。
2. 点击 开发工具 >> Visual Basic >> 插入 >> 模块,将下面的代码输入模块窗口中
Sub 合并当前工作簿下的所有工作表()
Application.ScreenUpdating = False
For j = 1 To Sheets.Count
If Sheets(j).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Range("A1").Select
Application.ScreenUpdating = True
MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"
End Sub
926

被折叠的 条评论
为什么被折叠?



