以下代码尝试在多个工作簿中打印工作表。
+----------+---------+---------------+
| 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错误。我不匹配的是什么?
答案 0 :(得分:0)
正如在办公室VBA Reference中所写,Sheets
- 对象指的是
指定或活动工作簿中所有工作表的集合。
因此,无法在一个打印任务中将不同工作簿中的工作表打印在一起。此外,语法为Sheets(Index)
,因此必须传递工作表的index
或name
。
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
他们,然后打印所有选定的工作簿。