Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel中打印工作表数组_Excel_Vba - Fatal编程技术网

在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”的最后一个元素。