Всем привет! Задача: Посчитать количество распечатанных листов книги Excel программно. Элементарный вопрос как оказалось стал не столь тривиален (для меня). Пришлось да же Загуглить Собственно хочу поделится решением... но предлагаю сначала поделится вашим видинием решения данной задачи. Файл прилагаю (нужно посчитать сколько листов распечатается).
Скрытый текст
John Walkenbach (Джон Уокенбах) - такого мужика знаю, про PageCount = PageCount + (sht.HPageBreaks.Count + 1) * (sht.VPageBreaks.Count + 1) тоже.
Public Function WorkbookPageCount2() As Integer
Dim ЧислоСтраницВсего As Integer 'Количество страниц (листов) которое необходимо вставить в принтер
Dim ws As Worksheet 'Счётчик цикла при переборке листов
Dim СтраницНаЛисте As Integer 'Страниц на одном рабочем листе
If Not ActiveWorkbook Is Nothing And Not ActiveWindow Is Nothing Then
ЧислоСтраницВсего = 0
'Перебираем все листы в наборе
For Each ws In ActiveWorkbook.Worksheets
If ws.Visible = xlSheetVisible Then 'Не обрабатываем невидимые
ws.DisplayPageBreaks = True 'Разбиваем лист на страницы
СтраницНаЛисте = ws.PageSetup.Pages.Count 'Узнаём, сколько страниц на листе
ЧислоСтраницВсего = ЧислоСтраницВсего + СтраницНаЛисте
End If
Next ws
End If
WorkbookPageCount = ЧислоСтраницВсего
End Function
Sub Pages_Count()
Dim Pages_Count As Long, sh
For Each sh In ThisWorkbook.Sheets
Pages_Count = Pages_Count + sh.PageSetup.Pages.Count
Next
MsgBox "Будет распечатано страниц: " & Pages_Count
End Sub
Kuzmich, Да, отрабатывает правильно, на активном листе. как-то так:
Код
Sub Pages_Count()
Dim Pages_Count As Long, sh
For Each sh In ThisWorkbook.Sheets 'ActiveWorkbook.Sheets
'Pages_Count = Pages_Count + sh.PageSetup.Pages.Count
sh.Activate: Pages_Count = Pages_Count + ExecuteExcel4Macro("GET.DOCUMENT(50)")
Next
MsgBox "Будет распечатано страниц: " & Pages_Count
End Sub
Доброго дня Столкнулся с такой же задачей, до печати, программно получить количество страниц, но не во всей книге целиком, а на конкретном листе, коих в книге много. Как бы оптимизировать Ваше решение под конкретный лист в книге?