У меня есть таблица Excel с листом «CR», где заполняются столбцы от A до K, причем первая строка является строкой заголовка.Excel VBA установил область печати в последнюю строку с данными
Строки 1-1000 отформатированы (границы), а столбец A содержит формулу для автоматического набора строк при вводе данных в столбце F.
Лист «CR» защищен, чтобы пользователи не могли вводить данные в столбце A (заблокировано).
Используя функцию Workbook_BeforePrint, я пытаюсь установить область печати в столбцы от A до K и в последнюю строку столбца A, содержащую номер.
Мой код (в объекте «ThisWorkbook») выглядит следующим образом:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim ws As Worksheet
Dim lastRow As Long
Set ws = ThisWorkbook.Sheets("CR")
' find the last row with data in column A
lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
ws.PageSetup.PrintArea = ws.Range("A1:K" & lastRow).Address
End Sub
Однако, когда в меню Файл -> Печать, диапазон столбцов от А до K до грести 1000 отображается вместо только строки, которые имеют число в столбце A. Что я делаю неправильно?
Я обновил код с вашими изменениями, но он все еще показывает все. – Antoon
Извините. Исправлено выше, если ваши данные не превышают 65536 строк. – David
Спасибо, что работает (также при предварительном просмотре при нажатии «Файл» -> «Печать») – Antoon