在Excel中打印工作表数组

时间:2016-12-27 15:48:14

标签: excel vba

以下代码尝试在多个工作簿中打印工作表。

+----------+---------+---------------+
| Amessung | Bsensor | Skalarprodukt |
+----------+---------+---------------+
|        1 |       1 |           146 |
|        1 |       2 |           118 |
|        1 |       3 |           85  |
|        2 |       1 |           118 |
|        2 |       2 |           104 |
|        2 |       3 |           92  |
|        3 |       1 |           85  |
|        3 |       2 |           92  |
|        3 |       3 |           125 |
+----------+---------+---------------+

在最后一行的运行中出现了TypeMismatch错误。我不匹配的是什么?

1 个答案:

答案 0 :(得分:0)

正如在办公室VBA Reference中所写,Sheets - 对象指的是

  

指定或活动工作簿中所有工作表的集合。

因此,无法在一个打印任务中将不同工作簿中的工作表打印在一起。此外,语法为Sheets(Index),因此必须传递工作表的indexname

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

如果要在一个打印任务中从一个工作簿打印多个工作表,可以select他们,然后打印所有选定的工作簿。