#excel #vba
#excel #vba
Вопрос:
Я настраиваю область печати, используя именованный диапазон, поскольку это таблица, и она растет. При выполнении заголовки не будут печататься. Как я могу настроить это, чтобы печатать именованный диапазон (Table3) вместе с заголовками?
Я пытался; ActiveSheet.PageSetup.PrintArea = Range("Table3{Headers}").Address
но напечатал только заголовки.
Application.Dialogs(xlDialogPrinterSetup).Show
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = Range("Table3").Address
Application.PrintCommunication = False
With ActiveSheet.PageSetup
Я хочу, чтобы были напечатаны заголовки и таблица3.
Комментарии:
1. Правильно. Я получаю Table3, но без заголовков
2. Я знаю, что когда диапазон был назван Table3, я установил флажок, в котором говорится, что в моей таблице есть заголовки. Не уверен, как это может закончиться.
Ответ №1:
Таблица — это ListObject
. Используйте ListObject.Range
свойство, чтобы возвращать то, Range
на что ссылается таблица (включая заголовки).
Dim myTbl as ListObject
Set myTbl = ThisWorkbook.Sheets("mysheetname").ListObjects("Table3")
...
ThisWorkbook.Sheets("mysheetname").PageSetup.PrintArea = myTbl.Range.Address
Измените название листа по мере необходимости.