По-долу кодът се опитва да отпечатва работни листове в няколко работни книги.
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
Има грешка в типовете в моите писти на последния ред. Какво съм несъответствие?
Отговори:
0 за отговор № 1Както е писано в Службата Референция на VBA, 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
и след това отпечатайте всички избрани.