Excel VBA将两张工作表复制到新工作簿
我有一本有许多工作表的工作簿。我正在尝试使用一个宏,将两个特定的工作表一起复制到一个尚不存在的新工作簿中。我对VBA很在行,下面我写的代码由于类型不匹配而出现运行时错误13。有人能帮忙吗?谢谢Excel VBA将两张工作表复制到新工作簿,excel,vba,Excel,Vba,我有一本有许多工作表的工作簿。我正在尝试使用一个宏,将两个特定的工作表一起复制到一个尚不存在的新工作簿中。我对VBA很在行,下面我写的代码由于类型不匹配而出现运行时错误13。有人能帮忙吗?谢谢 Sub CopyBillStatandCosts() Dim MyBook As Workbook Dim NewBook As Workbook Set MyBook = ThisWorkbook Workbooks.Add ' Open a new workbook Set Ne
Sub CopyBillStatandCosts()
Dim MyBook As Workbook
Dim NewBook As Workbook
Set MyBook = ThisWorkbook
Workbooks.Add ' Open a new workbook
Set NewBook = ActiveWorkbook
Set MyBook = ActiveWorkbook
Sheets(11).Copy Before:=Workbooks(NewBook).Sheets(1)
Sheets(9).Copy Before:=Workbooks(NewBook).Sheets(1)
Workbooks(NewBook).Sheet1.Delete
End Sub
更新:好的,我找到了做我想做的事情的代码;在下面。但我不知道如何通过代码名来引用这些表,这是最佳做法。有什么想法吗?它们是第9页和第11页
Sub copyBillStatandCosts()
ThisWorkbook.Worksheets(Array("BillStat", "C")).Copy
End Sub
你的第二个
Set MyBook = ActiveWorkbook
可能是命中注定的
MyBook.Activate
尽管这样做的一个更简单的方法是
Sub CopyBillStatandCosts()
Sheets(Array("BillStat", "Costs")).Copy
End Sub
不带参数的Copy
将在新工作簿中进行复制。一次性按代码名复制工作表
- 为什么使用代号?现在您可以重命名选项卡中的两个工作表,代码仍然会将正确的工作表复制到新工作簿中
- 为什么一气呵成?如果工作表之间存在相互引用,则它们仍将在新工作簿中工作,即不会引用源工作簿中的工作表
名称
属性:
ThisWorkbook.Sheets(数组(sheet9.Name,sheet11.Name)).Copy
是的,太好了。你知道如何通过代码名而不是实际引用的名称来引用图纸吗?谢谢。我相信你可以用表格索引代替名字。然而,名字通常更安全。
Sub copyBillStatandCosts()
ThisWorkbook.Worksheets(Array(Sheet9.Name, Sheet11.Name)).Copy
' To continue to work with the new workbook, do the following:
Dim NewBook As Workbook: Set NewBook = ActiveWorkbook
' e.g.:
' NewBook.SaveAs "C:\Test\Test.xlsx", xlOpenXMLWorkbook
' To continue to work with each new worksheet, do the following:
Dim bws As Worksheet: Set bws = NewBook.Worksheets(1)
Dim cws As Worksheet: Set cws = NewBook.Worksheets(2)
' e.g.:
MsgBox NewBook.Name & vbLf & bws.Name & vbLf & cws.Name
End Sub