Přejít k hlavnímu obsahu

Jak spočítat čísla stránek souborů PDF v aplikaci Excel?

Pokud existuje více souborů Pdf v konkrétní složce, nyní chcete zobrazit všechny tyto názvy souborů v listu a získat čísla stránek každého souboru. Jak byste mohli tuto práci v aplikaci Excel zvládnout rychle a snadno?

Počítat čísla stránek souborů PDF ze složky v listu s kódem VBA


Počítat čísla stránek souborů PDF ze složky v listu s kódem VBA

Může to být následující kód VBA, který vám pomůže zobrazit v listu všechny názvy souborů PDF a jejich jednotlivá čísla stránek, postupujte takto:

1. Otevřete list, kde chcete získat soubory PDF a čísla stránek.

2. Podržte ALT + F11 klíče a otevře se Microsoft Visual Basic pro aplikace okno.

3, klikněte Vložit > Modula vložte následující makro do souboru Modul Okno.

Kód VBA: Seznam všech názvů souborů PDF a čísel stránek v listu:

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 = "/Type\s*/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. Po vložení kódu a stiskněte F5 klíč ke spuštění tohoto kódu a Procházet vyskočí okno, vyberte složku obsahující soubory Pdf, které chcete vypsat, a spočítejte čísla stránek, viz screenshot:

počet dokumentů stránky PDF 1

5. A pak klikněte OK tlačítko, všechny názvy souborů PDF a čísla stránek jsou uvedeny v aktuálním listu, viz screenshot:

počet dokumentů stránky PDF 2

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  Vyvolejte funkce Kutools...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

Popis


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
Comments (79)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Thank you so much for the code
This comment was minimized by the moderator on the site
Is it possible to have it itemize instead of group these page numbers. For example if PDF 1 has 3 pages and PDF 2 has 2 pages, how do i get it to look like this?

File Name Page
PDF 1 1
PDF 1 2
PDF 1 3
PDF 2 1
PDF 2 2
This comment was minimized by the moderator on the site
This is so amazing and helpful. Is there a way to run this in a folder that has several subfolders and do all the files at once instead of having to run it for each folder?
This comment was minimized by the moderator on the site
Hello, MWilkers

You can view this comment to solve your problem:
https://www.extendoffice.com/documents/excel/5330-excel-vba-pdf-page-count.html#comment-39782,32012,20

Please have a try.
This comment was minimized by the moderator on the site
Thank you, the code worked very well. Is it possible to get the last modified date of PDF file as well in a separate column
This comment was minimized by the moderator on the site
Thank you for the code.
This comment was minimized by the moderator on the site
Wow, this has been SO helpful to me. Thank you!
This comment was minimized by the moderator on the site
Buenas. Me funciona perfecto. Ahora lo que necesitaría es imprimir unas paginas en concreto y llamo a esta rutina pero no imprime el pdf sino el excel.
Sub imprimirpdf()
Dim rutaPDF As String
rutaPDF = Sheets("Hoja1").Range("D2")
F = Cells(2, 7)
T = Cells(2, 8)
pid = Shell("C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat.exe " & Chr(34) & rutaPDF & Chr(34))
ActiveSheet.PrintOut From:=F, To:=T
DoEvents 'Paso 5 - Esperar que se Imprima el PDF
hnd = OpenProcess(PROCESS_TERMINATE, True, pid) 'Paso 6 - Obtener el handle(manejador) del proceso(Adobe Reader)
TerminateProcess hnd, 0 '
End Sub
This comment was minimized by the moderator on the site
Hallo vielen Dank für den Code und die super Erklärung
Ich habe nun das Problem das meine PDF-Dateien zwei unterschiedliche Seitengröße (A4 und A6) inne haben.
Nun würde ich gerne Pro PDF diese unterschied zusätzlich auslesen können.
Habe Sie hierfür vielleicht eine Lösung.

Gerne können sie mich auch unter email: erreichen.

MFG,
Sebastian
This comment was minimized by the moderator on the site
I get 0 pages for most pdfs, help?
This comment was minimized by the moderator on the site
Hello, MAXMAN
Could you upload the PDF file which can't get the correct number here? Or you can send your PDF file to my email: .
So that we can check the problem.
Thank you!
This comment was minimized by the moderator on the site
thanks
but i get an error runtime error "52" bad file name or number
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations