我正试图复制4张从4个不同的工作簿到'主'工作簿,我在
下面的代码只为一个工作表,但我想这样做的所有4张
此外,当前下面的代码打开源工作表,但我不想打开源工作表。如果我从下面的文件路径中删除“.Open”,则会显示下标超出范围
谢啦,谢啦
Sub Copysheets()
Dim source As Workbook
Dim Master As Workbook
Set source = Workbooks.Open("\\filepath\filename.xlsx")
Set Master = Workbooks.Open("\\filepath\filename.xlsm")
Dim sourcesheet As Worksheet
For Each sourcesheet In source.Sheets
sourcesheet.Copy After:=Master.Sheets(Master.Sheets.Count)
Next
End Sub
1条答案
按热度按时间lyr7nygr1#
如果你有一个需要重复执行的任务,通常把这个任务外包给一个子程序是个好主意。
下面的例程有两个参数,第一个是master(要复制工作表的工作簿)和一个filename(要打开和复制的文件名)。这个复制例程不关心你的业务逻辑,它只是复制工作表:
然后,您可以像这样调用例程(这段代码处理您的业务逻辑,但不关心复制是如何完成的):
或者,例如,使用循环复制所有文件的工作表: