Innehållsförteckning
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.xlsmEn ö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.