/ / Отпечатване на масив от работни листове в Excel - excel, vba

Отпечатване на масив от работни листове в Excel - 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

Има грешка в типовете в моите писти на последния ред. Какво съм несъответствие?

Отговори:

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 и след това отпечатайте всички избрани.