Количество страниц excel vba

 

bedvit

Пользователь

Сообщений: 2477
Регистрация: 02.04.2015

Виталий

#1

21.07.2017 13:49:48

Всем привет!
Задача:
Посчитать количество распечатанных листов книги Excel программно.
Элементарный вопрос как оказалось стал не столь тривиален (для меня).
Пришлось да же Загуглить :)
Собственно хочу поделится решением… но предлагаю сначала поделится вашим видинием решения данной задачи.
Файл прилагаю (нужно посчитать сколько листов распечатается).

Скрытый текст

Прикрепленные файлы

  • Pages_Count.xlsb (16.16 КБ)

Изменено: bedvit21.07.2017 13:50:12

«Бритва Оккама» или «Принцип Калашникова»?

 

bedvit

Пользователь

Сообщений: 2477
Регистрация: 02.04.2015

Виталий

«Бритва Оккама» или «Принцип Калашникова»?

 

Skif-F

Пользователь

Сообщений: 181
Регистрация: 26.12.2012

#3

21.07.2017 14:33:27

Ну, решение «в лоб» (посчитал 23 страницы):

Скрытый текст

Прикрепленные файлы

  • Pages_Count.xlsb (22.76 КБ)

Изменено: Skif-F21.07.2017 14:34:19

 

bedvit

Пользователь

Сообщений: 2477
Регистрация: 02.04.2015

Виталий

#4

21.07.2017 15:16:52

Все верно  — 23 страницы.
В одном направлении мыслим… сначала пошел по совету Уокенбаха, через разделитель страниц

Код
PageCount = PageCount + (sht.HPageBreaks.Count + 1) * (sht.VPageBreaks.Count + 1)

Но этот путь оказался ошибочным.
Вот мое решение:

Скрытый текст

Вообщем-то все просто в итоге.

Изменено: bedvit21.07.2017 15:18:47

«Бритва Оккама» или «Принцип Калашникова»?

 

AAF

Пользователь

Сообщений: 1000
Регистрация: 18.12.2016

#5

21.07.2017 16:10:52

Путь был бы не ошибочным, если б конструкция sht.HPageBreaks.Count внезапно не просила бы костыля…

Код
Set sht = Sheets(1)
'_____________________________Вот костыль
sht.Activate
sht.UsedRange.Cells(sht.UsedRange.Count).Select
________________________________________
ТеперьПравильноеКолРазрывов = sht.HPageBreaks.Count

Если работать с одним листом, то ладно, но несколькими….  :D

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#6

21.07.2017 16:21:45

А так правильно?

Код
Pages_Count = ExecuteExcel4Macro("GET.DOCUMENT(50)")

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#7

21.07.2017 16:24:28

Цитата
Посчитать количество распечатанных листов книги Excel программно
Код
  iCountPages = ExecuteExcel4Macro("GET.DOCUMENT(50)")
 

bedvit

Пользователь

Сообщений: 2477
Регистрация: 02.04.2015

Виталий

#8

21.07.2017 16:38:21

Цитата
The_Prist написал:
А так правильно?

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

«Бритва Оккама» или «Принцип Калашникова»?

 

kenigfinn

Пользователь

Сообщений: 32
Регистрация: 18.07.2016

#9

08.04.2021 12:09:48

Цитата
bedvit написал:
Вот мое решение:

Доброго дня
Столкнулся с такой же задачей, до печати, программно получить количество страниц, но не во всей книге целиком, а на конкретном листе, коих в книге много. Как бы оптимизировать Ваше решение под конкретный лист в книге?

Oleg

1

05.03.2008, 08:04. Показов 35049. Ответов 21


Студворк — интернет-сервис помощи студентам

Убедительная просьба помоч!!!
Как узнать количество страниц при печати в Excel?

Tim

06.03.2008, 13:13

2

Привет!!!
Ты когда-нить нажимал на разметку страницы в Екселе???
Там появляется лист екселя с синими пунктирными полосочками.
Так вот, именно по этим полосочкам и печатает принтер!
Остается их только посчитать.
А называются они PageBreak

Returns or sets the location of a page break. Can be one of the following XlPageBreak constants: xlPageBreakAutomatic, xlPageBreakManual, or xlPageBreakNone. Read/write Long.

Remarks

This property can return the location of either automatic or manual page breaks, but it can only set the location of manual breaks (it can only be set to xlPageBreakManual or xlPageBreakNone).

To remove all manual page breaks on a worksheet, set Cells.PageBreak to xlPageBreakNone.

Tim

06.03.2008, 13:33

3

Лови родной!
только для точного кол-ва страниц нужно всегда делать r+1 т.к. HPageBreaks — это коллекция межстраничных разрывов, а т.к. после последней страницы его нету, то и последнего HPageBreak тоже нету!
Надеюсь я помог хоть чем-то

Visual Basic
1
2
3
4
Sub test()
    r = ActiveSheet.HPageBreaks.Count
    MsgBox r
End Sub

Oleg

07.03.2008, 08:26

4

Спасибо за подсказку!!!
Есть еще одна проблемма!!!
Если в последней строке будуд данные, то количество страниц определяется правильно, если нет, на 1 меньше. А как это определить?

Tim

07.03.2008, 11:23

5

Извини, не понял. Про какую последнюю строку ты говоришь?

Oleg

07.03.2008, 11:31

6

Слова из первого ответа:
Ты когда-нить нажимал на разметку страницы в Екселе???
Там появляется лист екселя с синими пунктирными полосочками.
Так вот, именно по этим полосочкам и печатает принтер!
Остается их только посчитать.
А называются они PageBreak

Так вот если перед самой этой синей полосочкой в ячейку внести данные, то количество страниц будет правильным, иначе +1

Tim

07.03.2008, 13:26

7

Понятно
Но ведь я ж тебе примерчик с HPageBreaks сбросил!
Количество HPageBreaks + 1 и будет кол-м листов выводимых на печать
отталкивайся от него и все. А уж куда ты там данные занесешь перед разрывом страницы или после, этой коллекции наплевать!

Oleg

07.03.2008, 13:33

8

Это я все понимаю, но дело в том что я заполняю это программно и не знаю где будет последняя строка. Поэтому может получиться, что она будет посередине страницы и тогда количество страниц +1, а может быть последняя строка будет ровно в конце страницы, и тогда количество страниц будет правельным.
Как узнать в конце вывода, где я нахожусь по отношению к странице?
или как узнать количество строк на странице?

Tim

09.03.2008, 11:27

9

Вот оно что. Т.е. фактически тебе нужно узнать сколько строк у тебя в печатной странице? Блин… по-моему с этим будет сложнее. Я не помню ни одну функцию или метод, который бы позволял сказать сколько строк на печати в той или иной странице…
Тут очень много зависит от параметров печати, т.е. полей, шрифта, высоты строк, объеденены или нет ячейки, есть ли всякие переносы.. и т.п.
Если все это унифицировать, то можно высчитать сколько строк на странице, а соответственно и сколько страниц.
Давай, копай!

Olegusha

19.01.2010, 13:02

10

Visual Basic
1
2
3
4
Sub test()
r = ActiveSheet.HPageBreaks.Count
MsgBox r
End Sub

Этот макрос работает через раз.
Раз он выдает истинное к-во страниц, а другой раз — к-во, которое равно к-ву листов в книге.
И действительно есть проблема, когда определяет на одну страница меньше.
Заранее благодарен за ответы.

Oleg

19.01.2010, 13:19

11

Проблемма все еще актуальна!!!
Ввиду того, что последняя строка на странице редко бывает заполнена, я этой ситуацией пренебрегаю.

Olegusha

19.01.2010, 14:06

12

Главное не то, что он добавляет страницу, а то что он ЧЕРЕЗ РАЗ работает ((
Один раз он говорит, что страниц 4 (по одной на каждый лист книги), а другой — истинное значение. По предварительным данным нужно переместиться на последнюю заполненную ячейку на последнем листе книги. И тогда все ок.
Вот макрос, который я использую (печатает сразу четные страницы в обратном порядке, а потом — нечетные в прямом). Может кто-то подскажет!?!

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Sub print_stage()
 
Dim i, j, k, n, nos, sheet_count, total_pages, cur_pages As Byte
 
'не думаю что у тебя больше 255 листов
 
n = 0
total_pages = 0
 
' print_stage Макрос
 
 'Подсчет к-ва листов в книге
 sheet_count = ActiveWorkbook.Sheets.Count
 
 'Подсчет к-ва страниц в каждом листе
 For nos = 1 To sheet_count
    cur_pages = ActiveWorkbook.Sheets(nos).HPageBreaks.Count + 1
    
    
    n = ActiveWorkbook.Sheets(nos).VPageBreaks.Count
        
    If n > 1 Then
       MsgBox 'Столбцы поздвигай на ' & nos & ' листе, а то вылазят черт знает куда'
       GoTo m1:
    End If
 
 'Подсчет суммарного к-ва страниц во всей книге
    total_pages = total_pages + cur_pages
 Next nos
 
 
  MsgBox 'Печать четных страниц в обратном порядке (вставь бумагу).' & Chr(13) & Chr(13) & total_pages & ' страниц ' & sheet_count & ' раздела(ов)'
    
    For i = 2 To total_pages Step 2
       j = Int(total_pages / 2) * 2 + 2 - i
       'ActiveWorkbook.PrintOut From:=j, To:=j, Copies:=1, Collate:=True
       MsgBox 'Печать четных страниц' & Chr(13) & Chr(13) & j
    Next i
    
 MsgBox 'Печать нечетных страниц (переверни напечатанные листы и вставь обратно).' & Chr(13) & Chr(13) & total_pages & ' страниц [' & sheet_count & ' раздела(ов)]'
    
    For k = 1 To total_pages Step 2
       'ActiveWorkbook.PrintOut From:=k, To:=k, Copies:=1, Collate:=True
       MsgBox 'Печать нечетных страниц' & Chr(13) & Chr(13) & k
    Next k
   
m1:
 
End Sub

barinrec

62 / 4 / 1

Регистрация: 27.04.2014

Сообщений: 100

16.10.2014, 23:12

13

У Уокенбаха есть пример, но не правильно счет ведет все равно. Кто поможет уточнить код, чтобы пустые листы не считал?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub ShowPageCount()
    Dim PageCount As Integer
    Dim sht As Worksheet
    PageCount = 0
    For Each sht In Worksheets
        
        PageCount = PageCount + (sht.HPageBreaks.Count + 1) * _
         (sht.VPageBreaks.Count + 1)
    Next sht
    MsgBox "Total Pages = " & PageCount
End Sub



0



Eustas

0 / 0 / 0

Регистрация: 18.03.2016

Сообщений: 1

13.07.2017, 17:30

14

Суть в том, что Count считает именно Breaks (разрывы внутри диапазона печати). Т.е. границу листа не считает за разрыв, хотя на самом деле — это ещё одна страница. Т.о. вышеприведенные примеры для диапазона в котором всего одна страница должны рассчитывать 0. Пример для горизонтальных разрывов:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    rEnd = Cells(65000, 1).End(xlUp).Row  ' нижняя граница печати
 
    nCountSheets = 0  ' количество листов для печати
    rBreaks = 0          ' адрес строки, после которой стоит разрыв
 
' перебираю все разрывы (горизонтальные), определяя их положение
' тут главное определить строку последней границы
 
    For Each hp In ActiveSheet.HPageBreaks
        Set rngHPB = hp.Location
        rBreaks = rngHPB.Row - 1
        
        If rBreaks <= rEnd Then nCountSheets = nCountSheets + 1
    
    Next
    
    If rBreaks = 0 Then nCountSheets = 1
    If (ActiveSheet.HPageBreaks.Count <> 0 And rBreaks < rEnd ) Then nCountSheets = nCountSheets + 1
    
Debug.Print nCountSheets



0



mitzn

0 / 0 / 0

Регистрация: 19.10.2017

Сообщений: 1

19.10.2017, 10:17

15

а не проще ли так:

Visual Basic
1
2
3
4
5
6
7
8
9
Sub TotalPageCount()
 
Dim sh As Worksheet
    For Each sh In Worksheets
        c = c + sh.PageSetup.Pages.Count
        Z = Z & vbCrLf & sh.Name & "=" & sh.PageSetup.Pages.Count
    Next
    MsgBox "Total=" & c & Z
End Sub

все меньше и понятней чем огород условностей городить с разрывами



0



kukana

2 / 2 / 0

Регистрация: 23.10.2015

Сообщений: 65

04.03.2022, 12:05

16

mitzn, книга состоит из трёх листов. В первом 1 страница. Во втором 1 страница. В третьем 2 страницы.
Код

Visual Basic
1
2
3
4
5
6
7
Sub TotalPageCount()
Dim sh As Worksheet
c = 0   
For Each sh In Worksheets
        c = c + sh.PageSetup.Pages.Count
Next sh
End Sub

Выдаёт 218 страниц.
Пробовал удалять/сбрасывать разрывы — ситуация не меняется.
При пошаговом выполнении:
первый лист с=4;
второй лист с=4 , т.е. как будто в нём ноль страниц;
третий лист с=218, т.е. в нём их 214.
При предпросмотре и печати всё норм, в книге три листа на четырёх страницах.
Кто знает, что не так?



0



Модератор

Эксперт MS Access

11342 / 4661 / 748

Регистрация: 07.08.2010

Сообщений: 13,505

Записей в блоге: 4

04.03.2022, 12:14

17

kukana,
возможно, что где-то задана область печати , надо смотреть файл



0



2 / 2 / 0

Регистрация: 23.10.2015

Сообщений: 65

04.03.2022, 12:45

18

Нашёл. На третьем листе было разлиновано до конца.
Удачи всем.



0



2632 / 1637 / 745

Регистрация: 23.03.2015

Сообщений: 5,143

04.03.2022, 13:04

19

kukana,

For Each sh In ThisWorkbook.Worksheets



0



2 / 2 / 0

Регистрация: 23.10.2015

Сообщений: 65

04.03.2022, 14:29

20

Narimanych, ни. В другой книге смотрю. С большим количеством листов вопрос решил, а вот почему на втором листе ноль страниц так и не понятно.



0



Содержание

  1. Как определить, сколько страниц будет напечатан в Excel
  2. Обзор
  3. Дополнительные сведения
  4. Vba excel количество листов на печать
  5. Метод Sheets.PrintOut (Excel)
  6. Синтаксис
  7. Параметры
  8. Возвращаемое значение
  9. Примечания
  10. Пример
  11. Поддержка и обратная связь
  12. Русские Блоги
  13. [Excel VBA] Параметры печати объекта PageSetup
  14. 1. Свойства, соответствующие вкладке «Страница»
  15. 2. Свойства, соответствующие вкладке «Поля».
  16. 3. Свойства, соответствующие вкладке «Верхний / нижний колонтитул».
  17. 4. Свойства, соответствующие вкладке «Рабочий лист»
  18. 5. Атрибуты, не соответствующие вкладкам
  19. Range.PrintOut метод

Как определить, сколько страниц будет напечатан в Excel

Microsoft Excel 97 и более ранних версий Microsoft Excel 98 и более ранние версии этой статьи содержатся в разделе 139405.

Обзор

Microsoft Visual Basic для приложений не поддерживает метод, чтобы определить общее количество страниц, печатаемых на листе. Тем не менее можно использовать метод ExecuteExcel4Macro , чтобы использовать GET. Функция листа Document(50) макрос возвращает общее число страниц, напечатанных на активном листе.

Дополнительные сведения

Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации и без гарантий, явных или подразумеваемых, включая, но не ограничиваясь, подразумеваемые гарантии товарности или пригодности для определенной цели. Предполагается, что вы знакомы с демонстрируемым языком программирования и средствами, используемые для разработки и отладки. Специалисты службы технической поддержки Майкрософт могут объяснить возможности конкретной процедуры, но не выполнять модификации примеров для обеспечения функциональных возможностей или удовлетворения конкретных потребностей.
Если вы имеете ограниченный опыт программирования, у вас может возникнуть потребность связаться с сертифицированным партнером корпорации Майкрософт или консультационной службой корпорации Майкрософт. Для получения дополнительных сведений посетите следующие веб-сайты корпорации Майкрософт:

Дополнительные сведения о доступных вариантах поддержки и о том, как связаться с корпорацией Майкрософт, посетите следующий веб-узел корпорации Майкрософт:условиям обслуживания см. EN-US; CNTACTMSЧтобы использовать приведенный ниже макрос, настройте файл Microsoft Excel следующим образом:

Создайте новую книгу Microsoft Excel.

Выберите диапазон A1:J100.

Введите цифру 1 и нажмите клавиши CTRL + ENTER. Вы должны увидеть все выделенные ячейки заполнены с номером 1.

Вставьте модуль макроса Visual Basic.

Источник

Vba excel количество листов на печать

Перед печатью листа вы можете заранее узнать общее количество напечатанных страниц. В этой статье я познакомлю вас с хитростями.

Чтобы подсчитать количество напечатанных страниц перед печатью, вы можете перейти к печати, чтобы просмотреть счетное число.

Включите лист, на котором вы хотите подсчитать напечатанные страницы, и нажмите Файл > Печать / PDF, затем вы можете просмотреть количество напечатанных страниц.

Внимание: масштаб печати можно изменить в раскрывающемся списке в разделе «Настройки».

Также есть код VBA, который может сказать вам количество напечатанных страниц на листе.

1. Активируйте лист, который хотите подсчитать, нажмите Alt + F11 ключи для отображения Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули, затем вставьте приведенный ниже код в Модули.

VBA: подсчитать количество напечатанных страниц на листе

3. Нажмите F5 нажмите клавишу для запуска кода, а затем появится диалоговое окно, в котором указано количество напечатанных страниц. Смотрите скриншот:

Если у вас есть Kutools for Excel, вы можете применить его Печать указанных страниц служебную программу, а затем просмотрите распечатанные страницы активного листа.

После установки Kutools for Excel, пожалуйста, сделайте, как показано ниже 🙁 Скачать бесплатно Kutools for Excel сейчас!)

Включите лист, на котором вы хотите подсчитать количество страниц, нажмите Кутулс Плюс > печать > Печать указанных страниц, а затем просмотрите количество страниц во всплывающем диалоговом окне. Смотрите скриншот:

Внимание: Вы можете печатать только нечетные страницы, только четные страницы или определенные страницы только с Печать указанных страниц утилита.

Наконечник. Если вы хотите получить бесплатную пробную версию Печать указанных страниц Функция, пожалуйста, перейдите к бесплатной загрузке Kutools for Excel сначала, а затем перейдите к применению операции в соответствии с вышеуказанными шагами.

Источник

Метод Sheets.PrintOut (Excel)

Синтаксис

expression. PrintOut (From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName, IgnorePrintAreas)

выражение: переменная, представляющая объект Sheets.

Параметры

Kutools for Excel, с более чем 300 удобные функции, облегчающие вашу работу.
Имя Обязательный или необязательный Тип данных Описание
From Необязательный Variant Номер страницы, с которой начинается печать. Если этот аргумент опущен, печать начинается в начале.
Для Необязательный Variant Номер последней страницы для печати. Если этот аргумент опущен, печать заканчивается последней страницей.
Copies Необязательный Variant Число копий для печати. Если этот аргумент опущен, выводится одна копия.
Предварительный просмотр Необязательный Variant Значение true , чтобы Microsoft Excel вызвал предварительный просмотр перед печатью объекта. Значение false (или опущено) для немедленной печати объекта.
ActivePrinter Необязательный Variant Задает имя активного принтера.
PrintToFile Необязательный Variant Значение true для печати в файл. Если Параметр PrToFileName не указан, Excel предложит пользователю ввести имя выходного файла.
Collate Необязательный Variant Значение true для сортировки нескольких копий.
PrToFileName Необязательный Variant Если параметр PrintToFile имеет значение True, этот аргумент указывает имя файла, в который нужно напечатать.
IgnorePrintAreas Необязательный Variant Значение true для пропуска областей печати и печати всего объекта.

Возвращаемое значение

Примечания

«Страницы» в описаниях from и To относится к печатным страницам, а не к общим страницам на листе или книге.

Пример

В этом примере выводится активный лист.

В этом примере выполняется печать со страницы 2 на страницу 3.

В этом примере выводится три копии со страницы 2 на страницу 3.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Русские Блоги

[Excel VBA] Параметры печати объекта PageSetup

Мы часто печатаем вещи в своей работе и вручную устанавливаем некоторые параметры, например, горизонтальную или вертикальную печать. Разберитесь в свойствах PageSetup, задайте параметры печати с помощью нескольких коротких строк кода, затем вы можете установить их один раз, использовать постоянно, удобно и эффективно.

Объект PageSetup представляет инструкции по настройке страницы. Содержит все свойства настроек страницы (левое поле, нижнее поле, размер бумаги и т. Д.).

В следующем примере устанавливается альбомная ориентация печати, а затем выполняется печать рабочего листа.

1. Свойства, соответствующие вкладке «Страница»

Атрибуты Описание
FirstPageNumber Вернуть или установить номер первой страницы при печати указанного рабочего листа. Если установлено значение xlAutomatic, Microsoft Excel использует номер первой страницы. Значение по умолчанию — xlAutomatic. Длинный шрифт, читаемый и записываемый.
FitToPagesTall Верните или установите высоту страницы, используемую для масштабирования листа при его печати. Применяется только к рабочим листам. Тип варианта, читаемый и записываемый.
FitToPagesWide Верните или установите ширину страницы, используемую для масштабирования рабочего листа при его печати. Применяется только к рабочим листам. Тип варианта, читаемый и записываемый.
Orientation Возвращает или задает значение XlPageOrientation, которое представляет портретный или альбомный режим печати.
Pages Возвращает или задает количество страниц в коллекции Pages.
PaperSize Верните или установите размер бумаги. Может читать и писать XlPaperSize.
PrintQuality Вернуть или установить качество печати. Тип варианта, читаемый и записываемый.
Zoom Возвращает или задает значение Variant, которое представляет собой процентное значение от 10% до 400%. Этот процент представляет собой коэффициент масштабирования, когда Microsoft Excel печатает рабочий лист. Это свойство применяется только к листам. Если для этого атрибута установлено значениеFalse, ЗатемFitToPagesWide с участием FitToPagesTallАтрибуты определяют способ масштабирования листа. При любом увеличении сохраняется соотношение сторон исходного документа.

В этом примере Sheet1 настраивается для печати в альбомной ориентации.

2. Свойства, соответствующие вкладке «Поля».

Установление и возврат маржи в пунктах. быть полезнымInchesToPoints Метод преобразования дюймов в фунты, вы также можете использоватьCentimetersToPoints Метод перевода сантиметров в точки.

Точка: относится к единице измерения высоты печатаемых символов. Фунт равен 1/72 дюйма или примерно равен 1/28 сантиметра. )

Атрибуты Описание
BottomMargin Возвращает или задает размер нижнего поля в пунктах. Двойной тип, читаемый и записываемый.
CenterHorizontally Если указанный рабочий лист напечатан в центре страницы по горизонтали, значение атрибута равно True. Логический тип, доступный для чтения и записи.
CenterVertically Если указанный рабочий лист напечатан в центре страницы по вертикали, значение атрибута равно True. Логический тип, доступный для чтения и записи.
FooterMargin Вернуть или установить расстояние от нижнего колонтитула до низа страницы в пунктах. Двойной тип, читаемый и записываемый.
HeaderMargin Вернуть или установить расстояние от верха страницы до верхнего колонтитула в пунктах. Двойной тип, читаемый и записываемый.
LeftMargin Возвращает или задает размер левого поля в пунктах. Двойной тип, читаемый и записываемый.
RightMargin Возвращает или задает размер правого поля в пунктах. Двойной тип, читаемый и записываемый.
TopMargin Возвращает или задает размер верхнего поля в пунктах. Двойной тип, читаемый и записываемый.

В следующем примере устанавливаются все поля первого листа.

Эти два свойства аналогичны настройке содержимого ячейки по центру по горизонтали и вертикали.

3. Свойства, соответствующие вкладке «Верхний / нижний колонтитул».

Атрибуты Описание
AlignMarginsHeaderFooter Если Excel выравнивает верхний и нижний колонтитулы с полями, заданными в параметрах настройки страницы, он возвращает True. Чтение / запись логического типа.
CenterFooter Отцентрируйте информацию нижнего колонтитула в объекте PageSetup. Чтение / запись типа String.
CenterFooterPicture Возвращает графический объект, который представляет изображение в средней части нижнего колонтитула. Используется для установки атрибутов, связанных с изображением.
CenterHeader Выровняйте информацию заголовка по центру объекта PageSetup. Чтение / запись типа String.
CenterHeaderPicture Возвращает графический объект, который представляет изображение в средней части заголовка. Используется для установки атрибутов, связанных с изображением.
DifferentFirstPageHeaderFooter Истинно, если на первой странице используется другой верхний или нижний колонтитул. Чтение / запись логического типа.
LeftFooter Возвращает или задает выравнивание текста в левом нижнем колонтитуле книги или раздела.
LeftFooterPicture Возвращает графический объект, который представляет изображение в левой части нижнего колонтитула. Используется для установки атрибутов, связанных с изображением.
LeftHeader Возвращает или задает выравнивание текста в левом заголовке книги или раздела.
LeftHeaderPicture Возвращает графический объект, который представляет изображение в левой части заголовка. Используется для установки атрибутов, связанных с изображением.
OddAndEvenPagesHeaderFooter Если нечетные и четные страницы указанного объекта PageSetup имеют разные верхние и нижние колонтитулы, значение этого атрибута равно True. Логический тип, доступный для чтения и записи.
RightFooter Возвращает или задает расстояние (в пунктах) между правым краем страницы и правым краем нижнего колонтитула. Чтение / запись типа String.
RightFooterPicture Возвращает графический объект, который представляет изображение в правой части нижнего колонтитула. Используется для установки атрибутов изображения.
RightHeader Вернуть или установить правую часть заголовка. Чтение / запись типа String.
RightHeaderPicture Укажите графическое изображение, которое должно отображаться в правом заголовке. Только чтение.
ScaleWithDocHeaderFooter Возвращает или задает, будут ли масштабироваться верхний и нижний колонтитулы вместе с документом при изменении размера документа. Чтение / запись логического типа.

4. Свойства, соответствующие вкладке «Рабочий лист»

Атрибуты Описание
BlackAndWhite Если элементы в указанном документе напечатаны черно-белыми, значение атрибута равно True. Логический тип, доступный для чтения и записи.
Draft Если графика на листе не печатается при печати, значение атрибута равно True. Логический тип, доступный для чтения и записи.
Order Возвращает или задает значение XlOrder, которое представляет порядок, который Microsoft Excel использует для нумерации страниц при печати большого рабочего листа.
PrintArea Верните или установите область для печати в виде строки, которая использует ссылку стиля A1 макроязыка. Тип строки, доступный для чтения и записи.
PrintComments Вернуть или установить способ печати комментариев на листе. Тип XlPrintLocation, доступный для чтения и записи. Вы можете распечатать комментарии в виде текстовых полей или концевых сносок.
PrintErrors Устанавливает или возвращает константу XlPrintErrors, которая указывает тип отображаемой ошибки печати. Эта функция позволяет пользователям отменять отображение ошибок при печати рабочего листа. Могу читать и писать.
PrintGridlines Если линии сетки ячеек напечатаны на странице, значение равно True. Применяется только к рабочим листам. Логический тип, доступный для чтения и записи.
PrintHeadings Если заголовки строк и столбцов печатаются одновременно при печати этой страницы, значение равно True. Применяется только к рабочим листам. Логический тип, доступный для чтения и записи.
PrintNotes Если при печати рабочего листа комментарии к ячейкам печатаются вместе как концевые сноски, значение равно True. Применяется только к рабочим листам. Логический тип, доступный для чтения и записи.
PrintTitleColumns Возвращает или задает столбец, содержащий ячейки, которые повторно появляются в левой части каждой страницы, выраженные строкой на языке макросов в стиле A1. Тип строки, доступный для чтения и записи. Установите для этого атрибута значениеFalseИли пустая строка («»), строка заголовка будет закрыта.
PrintTitleRows Возвращает или задает те строки, которые содержат ячейки, которые многократно появляются в верхней части каждой страницы, выраженные в нотации стиля A1 с помощью строк макроязыка. Тип строки, доступный для чтения и записи.

Комментарий будет напечатан на новой странице.

5. Атрибуты, не соответствующие вкладкам

Атрибуты Описание
Application Если идентификатор объекта не используется, это свойство возвращает объект Application, представляющий приложение Microsoft Excel. Если используется идентификатор объекта, это свойство возвращает объект Application, представляющий создателя указанного объекта (вы можете использовать это свойство в объекте автоматизации OLE, чтобы вернуть приложение объекта). Только чтение.
Creator Возвращает 32-битное целое число, указывающее приложение, создавшее объект. Только чтение Длинный тип.
EvenPage Возвращает или задает выравнивание текста на четных страницах книги или раздела.
FirstPage Возвращает или задает выравнивание текста на первой странице книги или раздела.
Parent Возвращает родительский объект указанного объекта. Только чтение.

Range.PrintOut метод

Этот метод эквивалентен нажатию кнопки печати в Excel для выполнения операции печати. Этот метод позволяет указать принтер для печати.

Выражение выглядит следующим образом.

.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName)

название Описание
From Номер начальной страницы для печати. Если этот параметр не указан, печать начнется с начальной позиции.
To Номер конечной страницы печати. Если этот параметр не указан, печать будет до последней страницы.
Copies Количество копий для печати. Если этот параметр не указан, будет напечатана только одна копия.
Preview Если этоTrue, Microsoft Excel вызовет предварительный просмотр перед печатью объекта. Если этоFalse(Или опустите этот параметр), объект будет немедленно напечатан.
ActivePrinter Задайте имя активного принтера.
PrintToFile Если этоTrue, Затем распечатайте в файл. Если не указаноPrToFileName, Microsoft Excel предложит пользователю ввести имя файла вывода, который будет использоваться.
Collate Если этоTrue, Печать нескольких копий с подборкой.
PrToFileName в случае PrintToFileУстановить какTrue, Параметр указывает имя файла для печати.

Заметка:From с участием ToОписанная «страница» относится к странице, которая будет напечатана, а не ко всем страницам в указанном листе или книге.

Публичный аккаунт WeChat: VBA168

Обратите внимание на общедоступную учетную запись WeChat и каждый день получайте объяснения классических примеров Excel VBA.

Магазины Taobao предоставляют услуги настройки Excel.

Источник

Как посчитать количество напечатанных страниц на листе?

Перед печатью листа вы можете заранее узнать общее количество напечатанных страниц. В этой статье я познакомлю вас с хитростями.

Подсчитайте количество напечатанных страниц с помощью функции печати

Подсчитайте количество напечатанных страниц по коду VBA

Подсчитайте количество напечатанных страниц по Kutools for Excelхорошая идея3


Подсчитайте количество напечатанных страниц с помощью функции печати

Чтобы подсчитать количество напечатанных страниц перед печатью, вы можете перейти к печати, чтобы просмотреть счетное число.

Включите лист, на котором вы хотите подсчитать напечатанные страницы, и нажмите Файл > Печать / PDF, затем вы можете просмотреть количество напечатанных страниц.
количество напечатанных страниц документов 1

Внимание: масштаб печати можно изменить в раскрывающемся списке в разделе «Настройки».
количество напечатанных страниц документов 2


Подсчитайте количество напечатанных страниц по коду VBA

Также есть код VBA, который может сказать вам количество напечатанных страниц на листе.

1. Активируйте лист, который хотите подсчитать, нажмите Alt + F11 ключи для отображения Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули, затем вставьте приведенный ниже код в Модули.

VBA: подсчитать количество напечатанных страниц на листе

Sub ShowMe()
    MsgBox ExecuteExcel4Macro("GET.DOCUMENT(50)") & _
        " pages will be printed."
End Sub

3. Нажмите F5 нажмите клавишу для запуска кода, а затем появится диалоговое окно, в котором указано количество напечатанных страниц. Смотрите скриншот:
количество напечатанных страниц документов 3


Подсчитайте количество напечатанных страниц по Kutools for Excel

Если у вас есть Kutools for Excel, вы можете применить его Печать указанных страниц служебную программу, а затем просмотрите распечатанные страницы активного листа.

После установки Kutools for Excel, пожалуйста, сделайте, как показано ниже :( Бесплатная загрузка Kutools for Excel Сейчас!)

Включите лист, на котором вы хотите подсчитать количество страниц, нажмите Кутулс Плюс > печать > Печать указанных страниц, а затем просмотрите количество страниц во всплывающем диалоговом окне. Смотрите скриншот:
количество напечатанных страниц документов 4

Внимание: Вы можете печатать только нечетные страницы, только четные страницы или определенные страницы только с Печать указанных страниц утилита.

Наконечник. Если вы хотите получить бесплатную пробную версию Печать указанных страниц Функция, пожалуйста, перейдите к бесплатной загрузке Kutools for Excel сначала, а затем перейдите к применению операции в соответствии с вышеуказанными шагами.


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (0)


Оценок пока нет. Оцените первым!

    rEnd = Cells(65000, 1).End(xlUp).Row  ' нижняя граница печати
 
    nCountSheets = 0  ' количество листов для печати
    rBreaks = 0          ' адрес строки, после которой стоит разрыв
 
' перебираю все разрывы (горизонтальные), определяя их положение
' тут главное определить строку последней границы
 
    For Each hp In ActiveSheet.HPageBreaks
        Set rngHPB = hp.Location
        rBreaks = rngHPB.Row - 1
        
        If rBreaks <= rEnd Then nCountSheets = nCountSheets + 1
    
    Next
    
    If rBreaks = 0 Then nCountSheets = 1
    If (ActiveSheet.HPageBreaks.Count <> 0 And rBreaks < rEnd ) Then nCountSheets = nCountSheets + 1
    
Debug.Print nCountSheets

Понравилась статья? Поделить с друзьями:
  • Количество столбцов в электронной таблице excel
  • Количество рабочих дней расчет в excel
  • Количество символов в ячейке excel максимум
  • Количество столбцов в таблице excel vba
  • Количество рабочих дней в периоде excel