Как посчитать количество страниц pdf файлов в excel

Если в определенной папке есть несколько файлов Pdf, теперь вы хотите отобразить все эти имена файлов на листе и получить номера страниц каждого файла. Как можно быстро и легко справиться с этой работой в Excel?

Подсчитайте номера страниц файлов PDF из папки на листе с кодом VBA


Подсчитайте номера страниц файлов PDF из папки на листе с кодом VBA

Возможно, следующий код VBA может помочь вам отобразить все имена файлов PDF и их номера страниц на листе, пожалуйста, сделайте следующее:

1. Откройте рабочий лист, на котором вы хотите получить файлы PDF и номера страниц.

2. Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.

3. Нажмите Вставить > Модули, и вставьте следующий макрос в Модули Окно.

Код VBA: перечислить все имена файлов PDF и номера страниц на листе:

Sub Test()
    Dim I As Long
    Dim xRg As Range
    Dim xStr As String
    Dim xFd As FileDialog
    Dim xFdItem As Variant
    Dim xFileName As String
    Dim xFileNum As Long
    Dim RegExp As Object
    Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
    If xFd.Show = -1 Then
        xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
        xFileName = Dir(xFdItem & "*.pdf", vbDirectory)
        Set xRg = Range("A1")
        Range("A:B").ClearContents
        Range("A1:B1").Font.Bold = True
        xRg = "File Name"
        xRg.Offset(0, 1) = "Pages"
        I = 2
        xStr = ""
        Do While xFileName <> ""
            Cells(I, 1) = xFileName
            Set RegExp = CreateObject("VBscript.RegExp")
            RegExp.Global = True
            RegExp.Pattern = "/Types*/Page[^s]"
            xFileNum = FreeFile
            Open (xFdItem & xFileName) For Binary As #xFileNum
                xStr = Space(LOF(xFileNum))
                Get #xFileNum, , xStr
            Close #xFileNum
            Cells(I, 2) = RegExp.Execute(xStr).Count
            I = I + 1
            xFileName = Dir
        Loop
        Columns("A:B").AutoFit
    End If
End Sub

4. После вставки кода, а затем нажмите F5 ключ для запуска этого кода и Приложения всплывает окно, выберите папку, содержащую файлы PDF, которые вы хотите перечислить, и подсчитайте номера страниц, см. снимок экрана:

количество документов pdf страниц 1

5. А затем нажмите OK Кнопка, все имена файлов PDF и номера страниц перечислены на текущем листе, см. снимок экрана:

количество документов pdf страниц 2


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

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

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

вкладка kte 201905


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

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

офисный дно

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


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

 

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

 

Jack Famous

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

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

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Kentavrik7, здравствуйте!
Нашёл у себя

ссылку

, но не проверял…

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

PooHkrd

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

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

Excel x64 О365 / 2016 / Online / Power BI

Kentavrik7, можно при Power Query в помощи PBI. В Экселе, к сожалению, коннектора к pdf не предусмотрено.

Вот горшок пустой, он предмет простой…

 

Kentavrik7

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

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

#4

25.12.2019 15:27:27

Цитата
PooHkrd написал:
можно при Power Query в помощи PBI

Можно поподробнее как это сделать?

 

msi2102

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

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

Ещё пара ссылок:

Ссылка_1
Ссылка_2

 

PooHkrd

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

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

Excel x64 О365 / 2016 / Online / Power BI

#6

25.12.2019 15:44:15

Открываете PBI и выполняете там такой вот код:

Код
let
    Source = Folder.Files( ПутьКПапке ),
    FilteredPDFonly = Table.SelectRows(Source, each ([Extension] = ".pdf")),
    AddedCustom = Table.Combine( Table.AddColumn(FilteredPDFonly, "Содержимое", each Pdf.Tables( [Content] ) )[Содержимое] ),
    FilteredPagesOnly = Table.SelectRows(AddedCustom, each ([Kind] = "Page")),
    CountedRows = Table.RowCount(FilteredPagesOnly)
in
    CountedRows

Он вам посчитает количество страниц во всех PDF.

Вот горшок пустой, он предмет простой…

 

Petrosyan

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

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

PooHkrd,Получает я открываю Power Qwery — выбираю папку, нажимаю изменить , расширенный редактор, вставляю туда код ваш и он выкидывает мне ошибку, подскажите, пожалуйста в чем подвох, не работал с Qwery

 

Jack Famous

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

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

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#8

25.12.2019 16:14:50

Коды из моей ссылки в #2 заставить работать не удалось, зато есть…

…рабочая функция из ссылки №2 в #5 от msi2102

UPD:
Нашёл

ещё код от ZVI. Ему я доверяю больше, чем «заморским диковинкам»  :D

Функция и тестовая процедура

Petrosyan, вам осталось только цикл по всем файлам из папки организовать с проверкой на PDF’ность

Изменено: Jack Famous25.12.2019 16:34:04

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

PooHkrd

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

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

Excel x64 О365 / 2016 / Online / Power BI

Petrosyan, подвох в том, что вы не читаете то что я пишу. Этот код не работает ни в одной из версий Excel, он работает только в приложении Power BI. Можете скачать и пользоваться — оно бесплатное.

Вот горшок пустой, он предмет простой…

 

Petrosyan

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

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

#10

25.12.2019 17:17:15

Цитата
PooHkrd написал:
можно при Power Query в помощи PBI

Power Qwery в моем понимании надстройка екселя, я как понял что это вы и имели ввиду.
Jack Famous, Спасибо, из заморских сработал код который подсказал msi2102, :

Код
Sub Test()
    Dim MyPath As String, MyFile As String
    Dim i As Long
    MyPath = "Путь к файлу"
    MyFile = Dir(MyPath & Application.PathSeparator & "*.pdf", vbDirectory)
    Range("A:B").ClearContents
    Range("A1") = "File Name": Range("B1") = "Pages"
    Range("A1:B1").Font.Bold = True
    i = 1
    Do While MyFile <> ""
        i = i + 1
        Cells(i, 1) = MyFile
        Cells(i, 2) = GetPageNum(MyPath & Application.PathSeparator & MyFile)
        MyFile = Dir
    Loop
    Columns("A:B").AutoFit
    MsgBox "Total of " & i - 1 & " PDF files have been found" & vbCrLf _
           & " File names and corresponding count of pages have been written on " _
           & ActiveSheet.Name, vbInformation, "Report..."
End Sub
'
Function GetPageNum(PDF_File As String)
    'Haluk 19/10/2008
    Dim FileNum As Long
    Dim strRetVal As String
    Dim RegExp
    Set RegExp = CreateObject("VBscript.RegExp")
    RegExp.Global = True
    RegExp.Pattern = "/Types*/Page[^s]"
    FileNum = FreeFile
    Open PDF_File For Binary As #FileNum
        strRetVal = Space(LOF(FileNum))
        Get #FileNum, , strRetVal
    Close #FileNum
    GetPageNum = RegExp.Execute(strRetVal).Count
End Function
 

Jack Famous

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

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

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#11

25.12.2019 17:18:57

Цитата
Petrosyan: из заморских сработал код

ну а на моих PDF он не сработал…

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Petrosyan

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

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

#12

25.12.2019 18:04:47

Jack Famous,Вы заставили меня усомниться в методе, попробую вашими примерами сделал вот так:

Код
Option Explicit
 
Dim objFSO As Object, objFolder As Object, objFile As Object
 
Sub Get_All_File_from_SubFolders()
    Dim sFolder As String
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        sFolder = .SelectedItems(1)
    End With
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    Application.ScreenUpdating = False
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    GetSubFolders sFolder
    Set objFolder = Nothing
    Set objFSO = Nothing
    Application.ScreenUpdating = True
End Sub
Private Sub GetSubFolders(sPath)
    Dim sPathSeparator As String, sObjName As String
    Set objFolder = objFSO.GetFolder(sPath)
    For Each objFile In objFolder.Files
    Dim PdfFile As String
    Dim i As Integer
    PdfFile = objFile
     i = i + 1
        If Replace(objFile.Name, objFSO.GetBaseName(objFile), "") Like ".pdf*" Then
      
        Cells(i, 1) = Replace(objFile, sPath, "")
        Cells(i, 2) = PdfNumPages(PdfFile)
        Debug.Print i
         
        End If
    Next
    For Each objFolder In objFolder.SubFolders
        GetSubFolders objFolder.Path & Application.PathSeparator
    Next
End Sub
'
Function PdfNumPages(PdfFile As String) As Long
' ZVI:2019-06-21 https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&TID=85707#message979418
' Returns Number of Pages in PdfFile
    
  Dim s As String, s1 As String, sp As String
  Dim i(0 To 2) As Long, FileNum As Integer
    
  FileNum = FreeFile
  Open PdfFile For Binary As FileNum
  s = Space(LOF(FileNum))
  Get FileNum, , s
  Close FileNum
    
  i(1) = InStr(1, s, "/Type/Pages", vbTextCompare)
  If i(1) = 0 Then
    i(1) = InStr(1, s, "/Type /Pages", vbTextCompare)
    If i(1) = 0 Then
      ' Scanned/Encoded? Not strong extracting!
      i(1) = InStr(1, s, "/N ", vbTextCompare)
      PdfNumPages = Val(Mid$(s, i(1) + 2))
      Exit Function
    End If
    sp = " "
  End If
  Do
    i(0) = InStrRev(s, "obj", i(1), vbTextCompare)
    i(2) = InStr(i(1), s, "endobj", vbTextCompare)
    s1 = Mid$(s, i(0), i(2) - i(0))
    If InStr(1, s1, "/Parent ", vbTextCompare) = 0 Then
      i(1) = InStr(1, s1, "/Count", vbTextCompare)
      PdfNumPages = Val(Mid(s1, i(1) + 6))
      Exit Do
    End If
    i(1) = InStr(i(2), s, "/Type" & sp & "/Pages", vbTextCompare)
  Loop While i(1) > 0
   
End Function
  


Изменено: Petrosyan25.12.2019 18:09:38

 

Petrosyan

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

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

Jack Famous,При проверке вышло что код считает не верно листы, заморский, пока что более точно мне посчитал

 

DrillPipe

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

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

Посмотрите тут обсуждалось ранее  

Импорт свойств файла *pdf в таблицу excel

правда не все было на вба

Изменено: DrillPipe25.12.2019 19:49:40

 

Jack Famous

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

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

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#15

26.12.2019 09:13:59

Цитата
Petrosyan: код считает не верно листы

не могли бы вы выслать пример такого файла?

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

msi2102

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

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

Ссылку_2 (та, что импортная) из поста #5 приводил Андрей VG, вот

ТУТ

.
Jack Famous, там же

Андрей Лящук

выкладывал пару закодированных файлов, в которых не подсчитывается количество листов. Ещё (практически всеми вариантами) очень плохо подсчитывается количество листов если PDF имеет сложную структуру.

 

Jack Famous

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

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

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

msi2102, спасибо — глянул — всё-таки для полной универсальности нужны решения через спецсофт, который гарантировано вытащит инфу. Мне пока вполне хватит и того, что есть)))

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

pantel1987

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

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

#18

26.12.2019 10:28:59

а если эти pdf открывать вордом и воспользоваться?

Код
ActiveDocument.BuiltInDocumentProperties(14)

Перейти к содержанию

На чтение 1 мин. Просмотров 96 Опубликовано 24.05.2021

Если в определенной папке есть несколько файлов PDF, теперь вы хотите отобразить все эти имена файлов на листе и получить номера страниц каждого файла. Как можно быстро и легко справиться с этой задачей в Excel?

Подсчитайте номера страниц файлов PDF из папки на листе с кодом VBA


Подсчитайте номера страниц файлов PDF из папки на листе с кодом VBA

Возможно, следующий код VBA может помочь вам отобразить все имена файлов PDF и их номера страниц на листе, сделайте следующее:

1 . Откройте рабочий лист, на котором вы хотите получить файлы PDF и номера страниц.

2 . Удерживая нажатыми клавиши ALT + F11 , откроется окно Microsoft Visual Basic для приложений .

3 . Нажмите Вставить > Module и вставьте следующий макрос в окно Module .

Код VBA: перечислить все имена файлов PDF и номера страниц на листе:

4 . Вставив код, нажмите клавишу F5 , чтобы запустить этот код, и появится окно Обзор , выберите папку, содержащую файлы Pdf. вы хотите перечислить и подсчитать номера страниц, см. снимок экрана:

5 . Затем нажмите кнопку OK , все имена файлов PDF и номера страниц будут перечислены на текущем листе, см. Снимок экрана:


Группа: Пользователи

Ранг: Новичок

Сообщений: 45


Репутация:

0

±

Замечаний:
0% ±


Excel 2013 / 2016 / 365

Добрый день, всем!
Обратились ко мне коллеги с просьбой упростить им жизнь (так как я чуть чуть знаю VBA и Excel). Люди они хорошие, решил им помочь.
Суть проблемы в том, что они формируют описи для эл. документов (сканы pdf файлов)
Делают таблицу Excel в которой пишут: Номер группы документа, Имя файла, количество страниц, путь к нему.
Файлы лежат в папке «0.Опись» и называются (пример) «1.13 Ведомость.pdf»… «1.13 Опросной лист.pdf» … «2.10 Сводный лист.pdf» (в итоге получается опись с разбивкой по группам 1.1 … 1.2… 2.10… и т.д.)

Почти все реализовал, кроме одного момента…
В сети нашел пример кода для подсчета страниц в pdf (спасибо добрым людям), код работает
Но столкнулся с неприятным моментом… иногда на некоторых файлах выдается ошибка
«input past end of file».
Из описания ошибки понял, что проблема в самом pdf и так как pdf приходят «из вне», то исправить такие ошибки не представляется возможным(то ли от сканировали не так, то ли данные в файле не того вида… точно не понял)

Поэтому вижу только один выход, пропускать дынный фаил и делать помету (например выделение цветом ячейку с п. «1.13»). Что бы потом пользователи в ручную вносили корректировки в итоговую опись. Понятно, что это «кривое» решение, но люди и этому будут рады…

И тут вопрос…
Как обработать/пропустить ошибки в VBA? Возможно это?
Я с этим не сталкивался…

Вот пример кода, который считает страницы в pdf
[vba]

Код

Sub fileName()
    Dim fso, myPath, myFolder, myFile, myFilesPath(), myFilesName(), i, j
    Dim iPath As String
    ‘Записываем в переменную myPath полное имя папки
    myPath = ThisWorkbook.path & «.Опись»
    Set fso = CreateObject(«Scripting.FileSystemObject»)
    Set myFolder = fso.GetFolder(myPath)
    If myFolder.Files.Count = 0 Then
        MsgBox «В папке «» & myPath & «» файлов нет»
        Exit Sub
    End If
    ReDim myFilesPath(1 To myFolder.Files.Count)
    ReDim myFilesName(1 To myFolder.Files.Count)
    For Each myFile In myFolder.Files
        i = i + 1
        myFilesPath(i) = myFile.path
        myFilesName(i) = myFile.Name
        Debug.Print myFilesName(i)
    Next
    Debug.Print «Фильтр = » & UBound(myFilesName)
    For j = 1 To UBound(myFilesName)
        If myFilesName(j) Like «1.13 *» Then ‘метка имени файла, в котором считаем страницы — нужна для группировки
            iPath = myFilesPath(j)
            Call PDFCount(iPath)
        End If
    Next j
End Sub
Function PDFCount(PDFИмя As String)
    PDFCount = 1
    Ищем = «/Count»
    Разделитель = Chr(10)
    Open PDFИмя For Binary Access Read Lock Read As #1
    While Not EOF(1)
        Line Input #1, fstr
        If InStr(fstr, Ищем) > 0 Then
            PDFCount = word(fstr)
        End If
    Wend
    Close #1
    Debug.Print PDFИмя & «: Страниц = » & PDFCount
End Function

[/vba]

Одним словом, буду очень благодарен если кто-нибудь, что-нибудь подскажет или даст наводку где почитать.
Всем заранее спасибо!

З.Ы. Пример выложить, к сожалению не могу, так как все файлы на рабочем компьютере и их не скачать.

I will post my solution to this question, but maybe others have found a better way.

I wanted to obtain the number of pages in a pdf document using VBA.

I reviewed similar [vba] and [acrobat] questions, but I did not find a stand alone solution. After reviewing other posts, Adobe Acrobat’s SDK, and the VBA object browser, I learned enough to piece together this solution.

I am running Excel 2013 and Adobe Acrobat 9.0 Pro.

I understand its ok to answer my own question.

Community's user avatar

asked Jul 10, 2017 at 14:46

Tim's user avatar

This solution works when Excel 2013 Professional and Adobe Acrobat 9.0 Pro are installed.

You will need to enable the Adobe object model: Tools -> References -> Acrobat checkbox selected.

Adobe’s SDK has limited documentation on the GetNumPages method.

'with Adobe Acrobat 9 Professional installed
'with Tools -> References -> Acrobat checkbox selected

Sub AcrobatGetNumPages()

Dim AcroDoc As Object

Set AcroDoc = New AcroPDDoc

AcroDoc.Open ("C:UsersPublicLorem ipsum.pdf") 'update file location

PageNum = AcroDoc.GetNumPages

MsgBox PageNum

AcroDoc.Close

End Sub

answered Jul 10, 2017 at 14:55

Tim's user avatar

TimTim

611 gold badge1 silver badge6 bronze badges

Inspired from : https://www.extendoffice.com/documents/excel/5330-excel-vba-pdf-page-count.html

I created the function below. I do not have Adob accrobat pro installed.

Sub Test()

Dim vFolder, vFileName

vFolder = "D:Test Count Pages In PDF File"
'vFolder = "D:Test Count Pages In PDF File" '--> fine for both forms (with or without PathSeparator)
vFileName = "My File.pdf"
Debug.Print fNumberOfPages_in_PDF_File(vFolder, vFileName)
    

End Sub

Function fNumberOfPages_in_PDF_File(vFolder, vFileName)

Dim xStr As String
Dim xFileNum As Long
Dim RegExp As Object

'--- Number of Pages =0 if the file is not a PDF file
If Not vFileName Like "*.pdf" Then
    fNumberOfPages_in_PDF_File = 0
    Exit Function
End If

'--- Add PathSeparator ("") if it does not exist
If Right(vFolder, 1) <> Application.PathSeparator Then
    vFolder = vFolder & Application.PathSeparator
End If

'--- Count the number of pages in Pdf File
xStr = ""
Set RegExp = CreateObject("VBscript.RegExp")
RegExp.Global = True
RegExp.Pattern = "/Types*/Page[^s]"
xFileNum = FreeFile
Open (vFolder & vFileName) For Binary As #xFileNum
    xStr = Space(LOF(xFileNum))
    Get #xFileNum, , xStr
Close #xFileNum

fNumberOfPages_in_PDF_File = RegExp.Execute(xStr).Count

End Function

answered May 17, 2021 at 10:14

Ahcene's user avatar

1

Option Explicit
Public PDFDoc As AcroPDDoc, PDFPage As Object, A3&, A4&
Sub Main()
    Dim fso As FileSystemObject, fld As Folder, filePDF As File, fileName$, i&, Arr()
    Set fso = New FileSystemObject
    Set PDFDoc = New AcroPDDoc
    Set fld = fso.GetFolder(ThisWorkbook.Path)
    ReDim Arr(1 To 1000, 1 To 4)
    For Each filePDF In fld.Files
    
     Application.Calculation = xlCalculationManual
    
        fileName = filePDF.Name
        If Right(fileName, 4) = ".pdf" Then
            CountPagesPDF (ThisWorkbook.Path & "" & fileName)
            i = i + 1
            Arr(i, 1) = fileName
            Arr(i, 2) = A3 + A4
            Arr(i, 3) = A3
            Arr(i, 4) = A4
            
        End If
    Next
    Range("A3:D" & Cells.Rows.Count).Clear
    Range("A3:D" & (i + 1)) = Arr
    Set PDFPage = Nothing
    Set PDFDoc = Nothing
    Set fso = Nothing
    
     Application.Calculation = xlCalculationAutomatic
    
End Sub

Sub CountPagesPDF(FullFileName$)
    Dim j&, n&, x, y
    A3 = 0
    A4 = 0
    PDFDoc.Open (FullFileName)
    n = PDFDoc.GetNumPages
    
    Application.Calculation = xlCalculationManual
    
    For j = 0 To n - 1
        Set PDFPage = PDFDoc.AcquirePage(j)
        x = PDFPage.GetSize().x
        y = PDFPage.GetSize().y
        If x + y > 1500 Then A3 = A3 + 1 Else A4 = A4 + 1
    Next
    
    Application.Calculation = xlCalculationAutomatic
    
    PDFDoc.Close
End Sub

Poul Bak's user avatar

Poul Bak

10.2k4 gold badges29 silver badges53 bronze badges

answered Feb 2, 2021 at 11:00

Nguyễn Quang Trung's user avatar

1

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как посчитать количество столбцов в excel по формуле
  • Как посчитать количество ячеек с одним данным excel
  • Как посчитать количество столбиков в excel
  • Как посчитать количество ячеек с заливкой в excel
  • Как посчитать количество сотрудников в excel

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии