首页 > 解决方案 > VBA 宏:将工作表从一个 Excel 文件复制到另一个

问题描述

我需要帮助将工作表从一个 Excel 工作簿复制到另一个工作簿。目前,这是我的代码,但它没有运行:

Sub Code()

Workbooks.Open Filename:="C:\Users\xxx\Desktop\w1.xlsm"
Sheets (Array("Sheet1", "Sheet2"))
Copy after:=Workbooks("w2.xlsm").Sheets(Sheets.Count)
Workbooks("Client Info Template.xlsm").Close savechanges:=False

End Sub

标签: vbaexcel

解决方案


代替Sheets...andCopy ...作为两行,尝试单行:

Sheets(Array("Sheet1", "Sheet2")).Copy After:=Workbooks("w2.xlsm").Sheets(Sheets.Count)

这可能仍然不起作用,或者至少不可靠,因为Sheets.Count可能超过目标工作簿中的工作表数,因此最好完全限定所有对象:

Sub Code()

Dim w1 as Workbook, w2 as Workbook
Set w1 = Workbooks.Open(Filename:="C:\Users\xxx\Desktop\w1.xlsm")
Set w2 = Workbooks.Open(Filename:="C:\Users\xxx\Desktop\w2.xlsm")  '## Modify as needed

w1.Sheets(Array("Sheet1", "Sheet2")).Copy After:=w2.Sheets(w2.Sheets.Count)

End Sub

推荐阅读