在Excel中打印工作表数组
下面的代码尝试跨多个工作簿打印工作表在Excel中打印工作表数组,excel,vba,Excel,Vba,下面的代码尝试跨多个工作簿打印工作表 Dim wb1, wb2, wb3 as workbook set wb1 = workbooks.open(......) set wb2 = workbooks.open(......) set wb3 = workbooks.open(......) Sheets(Array(wb1.Sheets(...),wb2.Sheets(...),wb3.Sheets(...))).PrintOut 我在最后一行的运行中出现类型不匹配错误。我错配了什
Dim wb1, wb2, wb3 as workbook
set wb1 = workbooks.open(......)
set wb2 = workbooks.open(......)
set wb3 = workbooks.open(......)
Sheets(Array(wb1.Sheets(...),wb2.Sheets(...),wb3.Sheets(...))).PrintOut
我在最后一行的运行中出现类型不匹配错误。我错配了什么?正如办公室里写的那样,工作表
-对象指的是
指定工作簿或活动工作簿中所有工作表的集合
因此,不可能在一个打印任务中同时打印来自不同工作簿的纸张。此外,语法是工作表(索引)
,因此必须传递工作表的索引
或名称
Sub testPrint()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim s(1) As Worksheet
Dim mySheet As Variant
'
' collect sheets from different workbooks
'
Set wb1 = Workbooks("wm1.xlsm")
Set wb2 = Workbooks("wm2.xlsm")
Set s(0) = wb1.Sheets(1)
Set s(1) = wb2.Sheets(1)
'
' print or print preview sheets after each other
'
For Each mySheet In s
mySheet.PrintPreview
Next
End Sub
如果要在一个打印任务中打印一个工作簿中的多个工作表,可以
选择它们,然后打印所有选定的工作表。看起来需要具有工作表名称的数组,而不是工作表本身。我尝试使用wb1.sheets(…).name修改代码,但它只打印出数组“wb3”的最后一个元素。