Note: The other languages of the website are Google-translated. Back to English

Hur batchkonverterar flera Word-dokument till pdf-filer?

Det är enkelt för dig att konvertera ett Word-dokument till en PDF-fil med funktionen Spara som i Word. Men om du vill konvertera alla Word-dokument i en mapp till separata PDF-filer samtidigt, hur kan du uppnå det? Den här artikeln visar en VBA-kod för att omvandla flera Word-dokument till pdf-filer i Word.

Batchkonvertera flera Word-dokument till pdf-filer med VBA
Batchkonvertera flera Word-dokument till pdf-filer med Kutools for Word


Batchkonvertera flera Word-dokument till pdf-filer med VBA

Följande VBA-kod hjälper dig att snabbt konvertera alla Word-dokument i en mapp till pdf-filer samtidigt. Gör så här.

1. I Word, tryck på andra + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. I Microsoft Visual Basic för applikationer fönstret klickar Insert > Modulerna, kopiera sedan VBA-koden nedan till modulfönstret.

VBA-kod: Batchkonvertera flera Word-dokument till pdf-filer i Word

Sub ConvertWordsToPdfs()
'Updated by Extendoffice 20181123
    Dim xIndex As String
    Dim xDlg As FileDialog
    Dim xFolder As Variant
    Dim xNewName As String
    Dim xFileName As String
    Set xDlg = Application.FileDialog(msoFileDialogFolderPicker)
    If xDlg.Show <> -1 Then Exit Sub
    xFolder = xDlg.SelectedItems(1) + "\"
    xFileName = Dir(xFolder & "*.*", vbNormal)
    While xFileName <> ""
        If ((Right(xFileName, 4)) <> ".doc" Or Right(xFileName, 4) <> ".docx") Then
            xIndex = InStr(xFileName, ".") + 1
            xNewName = Replace(xFileName, Mid(xFileName, xIndex), "pdf")
            Documents.Open FileName:=xFolder & xFileName, _
                ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
                PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
                WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
                wdOpenFormatAuto, XMLTransform:=""
            ActiveDocument.ExportAsFixedFormat OutputFileName:=xFolder & xNewName, _
                ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
                wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
                Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
                CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
                BitmapMissingFonts:=True, UseISO19005_1:=False
            ActiveDocument.Close
        End If
        xFileName = Dir()
    Wend
End Sub

3. tryck på F5 för att köra koden.

4. En bläddringsdialog dyker upp, välj den mapp som innehåller Word-dokument som du konverterar till pdf-filer och klicka på OK knapp.

Sedan konverteras alla Word-dokument i vald mapp till separata pdf-filer på en gång. Se skärmdump:


Batchkonvertera flera Word-dokument till pdf-filer med Kutools for Word

Om VBA-koden är svår att hantera kan du prova Konvertera dokument nytta av Kutools för Word för att lösa problemet.

Kutools för Word : Med mer än 100 praktiska Word-tillägg, gratis att prova utan begränsning på 60 dagar.

1. klick Kutools Plus > Doc / Docx. Se skärmdump:

2. I Dokumentformatkonverterare måste du göra på följande sätt:

2.1) Välj mappen som innehåller dokument som du kommer att konvertera till pdf i Mapp för källfil sektion;
2.2 Välj Konvertera docx till pdf från Format Konvertera rullgardinsmeny
2.3) Som standard är Destinationsväg samma som källa kryssrutan är markerad. Om du vill placera alla konverterade pdf-filer i samma mapp, håll bara det här alternativet valt;
Om du vill separera pdf-filer och källdokument måste du avmarkera Destinationsväg samma som källa och välj en ny mapp för att spara pdf-filerna i Spara till låda;
2.4) Klicka på Start knapp. Se skärmdump:

3. Sedan dyker en dialogruta upp för att berätta hur många dokument som har konverterats framgångsrikt, klicka på OK och stäng knappen Dokumentformatkonverterare fönster.

Nu konverteras alla dokument .docx-format till pdf-filer.

Om du vill ha en gratis testversion av det här verktyget, gå till ladda ner programvaran gratis först och sedan tillämpa operationen enligt ovanstående steg.


Rekommenderade Word-produktivitetsverktyg

 

Kutools för Word - Mer än 100 avancerade funktioner för Word, spara 50% tid

  • Komplicerade och upprepade operationer kan göras engångsbehandling på några sekunder.
  • Infoga flera bilder över mappar i Word-dokumentet samtidigt.
  • Slå ihop och kombinera flera Word-filer över mappar till en med önskad ordning.
  • Dela upp det aktuella dokumentet i separata dokument enligt rubrik, avsnittbrytning eller andra kriterier.
  • Konvertera filer mellan Doc och Docx, Docx och PDF, samling verktyg för vanliga konverteringar och val, och så vidare ...
Sortera kommentarer efter
Kommentarer (23)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Så fin blogg, tack för att du delar denna blogg. Den har så användbar information för användare. Jag gillade den här informationen så mycket.
Hoppas du fortsätter att dela med dig av sådan information konvertera word doc till html
michaelwaung
Denna kommentar minimerades av moderatoren på webbplatsen
VBA om jag försöker konvertera fil som innehåller makron makrot swith till öppen fil och slutar utan stäng fil.
Marzio
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det något sätt att få filnamnet från texten i dokumentet?
sammy
Denna kommentar minimerades av moderatoren på webbplatsen
Hej där,


finns det ett enkelt sätt att justera VBA-koden så att dokumenten konverteras till .txt-filer?
Stefan
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,

Jag får körtidsfel '424':
Objekt krävs

vid koden nedan

Documents.Open Filename:=xFolder &amp; xFileName, _

ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _

PasswordDocument:="", PasswordTemplate:="", Återställ:=False, _

WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _

wdOpenFormatAuto, XMLTransform:=""


wdOpenFormatAuto = 0 står det.

Snälla hjälp.

Tack.
Akshay
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,



Jag får körtidsfel '424':

Objekt krävs


bild bifogad.




Snälla hjälp.



Tack.
9aks92
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, tack så mycket för den här koden. Det fungerar bra, men jag får en dialogruta efter varje konvertering för att spara word doc och jag måste spara. Kan du inkludera kod i makrot för att spara och stänga filen istället för att behöva stänga var och en?
Eric Smith
Denna kommentar minimerades av moderatoren på webbplatsen
om du lägger till "ActiveDocument.Save" precis ovanför "ActiveDocument.Close" kommer det att spara dokumentet innan det stänger sig självt så att du inte alltid behöver trycka på spara-prompten.
Rebecca
Denna kommentar minimerades av moderatoren på webbplatsen
tack för vba-koden, det hjälper mycket.
Doris
Denna kommentar minimerades av moderatoren på webbplatsen
VBA-koden är bra. Skål, åt
San
Denna kommentar minimerades av moderatoren på webbplatsen
Ändra xIndex = InStr(xFilnamn, "."") + 1


Jirka
Denna kommentar minimerades av moderatoren på webbplatsen
Om du byter
xIndex = InStr(xFilnamn, "."") + 1 till
xIndex = InStrRev(xFilnamn, "."") + 1
den kommer att söka från slutet av strängen för att hitta den första perioden. Detta kommer att undvika problem där filnamnet innehåller punkter.
Garrie
Denna kommentar minimerades av moderatoren på webbplatsen
Спасибо, очень дельный совет
Sergei
Denna kommentar minimerades av moderatoren på webbplatsen
Om du ändrarxFilnamn = Dir(xFolder & "*.*", vbNormal)
till xFileName = Dir(xFolder & "*.doc*", vbNormal) makrot kommer inte att krascha när det finns icke-Word-filer i samma mapp.
Garrie
Denna kommentar minimerades av moderatoren på webbplatsen
Detta räddade min dag, tack så mycket!
Jag skulle bara vilja påpeka för personer som använder detta, om Word verkar frysa, vänta bara - det genererar .pdf-filerna. Mitt Word frös men jag öppnade mappen med filerna och kunde se att det verkligen genererade .pdf för alla filer.
Denna kommentar minimerades av moderatoren på webbplatsen
VBA 很棒!!感謝您的分享。
Chengchi
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har ett problem om documet har namn 1.2.3.5.Blabla bla.doc det sparar och skriver om PDF-filer och sammanfattningsvis har jag bara 0ne? sista dokumentet. Hur kan jag lösa detta problem?
yuri
Denna kommentar minimerades av moderatoren på webbplatsen
Om du byter
xIndex = InStr(xFilnamn, "."") + 1
till
xIndex = InStrRev(xFilnamn, "."") + 1
den kommer att söka från slutet av strängen för att hitta den första perioden. Detta kommer att undvika problem där filnamnet innehåller punkter.

Om du byter
xFilnamn = Dir(xFolder & "*.*", vbNormal)
till
xFilnamn = Dir(xFolder & "*.doc*", vbNormal)
makrot kommer inte att krascha när det finns icke-Word-filer i samma mapp.
MoonBrain
Denna kommentar minimerades av moderatoren på webbplatsen
Макрос работает некорректно, если в именах файлов есть точки
Sergey
Denna kommentar minimerades av moderatoren på webbplatsen
Om du byter
xIndex = InStr(xFilnamn, "."") + 1
till
xIndex = InStrRev(xFilnamn, "."") + 1
den kommer att söka från slutet av strängen för att hitta den första perioden. Detta kommer att undvika problem där filnamnet innehåller punkter.
Garrie
Denna kommentar minimerades av moderatoren på webbplatsen
Om du byter
xIndex = InStr(xFilnamn, "."") + 1
till
xIndex = InStrRev(xFilnamn, "."") + 1
den kommer att söka från slutet av strängen för att hitta den första perioden. Detta kommer att undvika problem där filnamnet innehåller punkter.

Om du byter
xFilnamn = Dir(xFolder & "*.*", vbNormal)
till
xFilnamn = Dir(xFolder & "*.doc*", vbNormal)
makrot kommer inte att krascha när det finns icke-Word-filer i samma mapp.
MoonBrain
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket! Sparade mig så mycket tid!
Mary McDaniel
Denna kommentar minimerades av moderatoren på webbplatsen
Вот тут во втором условии надо 4 заменить på 5:
Om ((Right(xFileName, 4)) <> ".doc" Eller Right(xFileName, 5) <> ".docx") Då
Для исключения проблемы наличия точек можно сделать так:
xIndex = InStr(xFilnamn, ".doc") + 1
Ну и про советы других товарищей не забыть ;)

Jurij Chumakov
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0  Tecken
Föreslagna platser