Настройка области печати VBA excel

#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
  

Измените название листа по мере необходимости.