Hur man extraherar specifika data från PDF till Excel med VBA

  • Dela Detta
Hugh West

Ett av de vanligaste problemen som de flesta av oss möter i vårt dagliga liv är hur man ska extrahera vissa specifika data från en PDF fil till ett Excel-arbetsblad med hjälp av VBA I den här artikeln ska jag visa hur du gör detta på ett bekvämt sätt med hjälp av exempel och illustrationer.

Extrahera specifika data från PDF till Excel med hjälp av VBA (snabbvisning)

 Sub Extract_Data_from_PDF() Set MyWorksheet = ActiveWorkbook.Worksheets("Sheet1") Application_Path = "C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat\Acrobat.exe" PDF_Path = "E:\ExcelWIKI\standardnormaltable.pdf" Shell_Path = Application_Path & " """ & PDF_Path & """" Call Shell(pathname:=Shell_Path, windowstyle:=vbNormalFocus) Application.Wait Now + TimeValue("0:00:03") SendKeys "%vpc"SendKeys "^a" SendKeys "^c" MyWorksheet.Range("A1").PasteSpecial Paste:=xlPasteAll Call Shell("TaskKill /F /IM Acrobat.exe", vbHide) End Sub 

Ladda ner övningsboken

Ladda ner den här arbetsboken för att träna medan du läser den här artikeln.

Extrahera data från PDF.xlsm

En översikt för att extrahera specifika data från PDF till Excel med hjälp av VBA (steg-för-steg-analys)

Låt oss därför utan ytterligare dröjsmål gå över till dagens huvuddiskussion. Här har vi en PDF fil som heter standardnormaltabell.pdf som innehåller en tabell över normalfördelningen.

Vi har öppnat ett arbetsblad som heter Blad 1 i en Excel-arbetsbok där vi kopierar uppgifterna från PDF fil.

Nu ska jag visa att du kan kopiera data från PDF filen till Excel-arbetsbladet genom en stegvis analys.

⧪ Steg 1: Ange de nödvändiga ingångarna

Först och främst måste du deklarera de nödvändiga inmatningarna. Dessa inkluderar arbetsbladets namn, cellernas intervall, platsen för det program genom vilket PDF öppnas ( Adobe Reader i det här exemplet), och platsen för PDF fil.

 Set MyWorksheet = ActiveWorkbook.Worksheets("Sheet1") Application_Path = "C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat\Acrobat.exe" PDF_Path = "E:\ExcelWIKI\standardnormaltable" 

⧪ Steg 2: Öppna PDF-filen (med hjälp av VBA Shell-kommandot)

Därefter måste vi anropa VBA Skalfunktion för att öppna PDF fil.

 Shell_Path = Application_Path & " """" & PDF_Path & """" Call Shell(pathname:=Shell_Path, windowstyle:=vbNormalFocus) 

⧪ Steg 3 (valfritt): Vänta några ögonblick

Det här är valfritt, men när du har en lång rad uppgifter är det bättre att vänta en stund så att datorn kan avsluta den tidigare uppgiften och starta en ny uppgift.

 Application.Wait Now + TimeValue("0:00:03") 

Här väntar vi i 30 sekunder, men om du vill kan du vänta längre.

⧪ Steg 4: Använd SendKeys för att kopiera data från PDF-filen

Det här är förmodligen den viktigaste uppgiften. Vi kommer att använda 3 Skicka nycklar:

  • ALT + V, P, C: Detta är främst för att möjliggöra rullning i PDF För små filer är detta inte nödvändigt, men för större filer blir det nödvändigt för att välja hela filen.
  • CTRL + A: Detta är för att välja hela filen.
  • CTRL + C : För att kopiera den valda filen.

Därför kommer kodraderna att vara:

 SendKeys "%vpc" SendKeys "^a" SendKeys "^c" 

⧪ Steg 5: Klistra in data i Excel-filen

Vi har öppnat den särskilda PDF Vi måste nu klistra in dessa data i det önskade intervallet i kalkylbladet.

 MyWorksheet.Range("A1").PasteSpecial Paste:=xlPasteAll 

Här har jag klistrat in cell A1 Du kan naturligtvis klistra in den någon annanstans enligt dina önskemål.

⧪ Steg 6 (valfritt): Stäng PDF-filen (avslutar programmet)

Slutligen är det bättre att stänga det pågående programmet när du är klar med dataextraktionen.

 Kalla Shell("TaskKill /F /IM Acrobat.exe", vbHide) 

Läs mer: Hur du extraherar data från PDF till Excel (4 lämpliga sätt)

Liknande läsningar

  • Hur man exporterar data från fyllbar PDF till Excel (med snabba steg)
  • Exportera PDF-kommentarer till ett Excel-kalkylblad (3 snabba knep)

Exempel för att extrahera specifika data från PDF till Excel med hjälp av VBA

Vi har sett hur du steg för steg extraherar data från en PDF fil till ett Excel-arbetsblad med hjälp av VBA .

Därför måste den fullständiga VBA kod för att extrahera data från PDF fil som heter standardnormaltable till Blad 1 kommer att vara:

VBA-kod:

 Sub Extract_Data_from_PDF() Set MyWorksheet = ActiveWorkbook.Worksheets("Sheet1") Application_Path = "C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat\Acrobat.exe" PDF_Path = "E:\ExcelWIKI\standardnormaltable.pdf" Shell_Path = Application_Path & " """ & PDF_Path & """" Call Shell(pathname:=Shell_Path, windowstyle:=vbNormalFocus) Application.Wait Now + TimeValue("0:00:03") SendKeys "%vpc"SendKeys "^a" SendKeys "^c" MyWorksheet.Range("A1").PasteSpecial Paste:=xlPasteAll Call Shell("TaskKill /F /IM Acrobat.exe", vbHide) End Sub 

Utgång:

Kör den här koden. Den kopierar data från PDF fil som heter "standardnormaltable" till arbetsbladet som heter "Sheet1" i den aktiva arbetsboken.

Läs mer: Hur du extraherar data från flera PDF-filer till Excel (3 lämpliga sätt)

Saker att komma ihåg

  • Arbetsboken där du ska kopiera data från PDF -filen måste hållas öppen när du kör koden, annars måste du använda arbetsbokens namn i koden.
  • Namnet på programmet som du använder i koden ( Adobe Acrobat DC här) måste vara installerad på din dator, annars får du ett felmeddelande.
  • För stora datamängder av PDF filer kan det ta en stund att kopiera alla data och klistra in dem. Ha tålamod och vänta tills processen är klar.

Slutsats

Därför är detta processen för att extrahera vissa specifika data från en PDF fil till ett Excel-arbetsblad med hjälp av VBA Om du har några frågor är du välkommen att ställa dem till oss. Glöm inte att besöka vår webbplats. ExcelWIKI för fler inlägg och uppdateringar.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.