Note: The other languages of the website are Google-translated. Back to English
Đăng nhập  \/ 
x
or
x
Đăng ký  \/ 
x

or

Làm thế nào để chuyển đổi hàng loạt nhiều tài liệu Word sang tệp pdf?

Bạn có thể dễ dàng chuyển đổi tài liệu Word sang tệp PDF với chức năng Save as trong Word. Nhưng nếu bạn muốn chuyển đổi tất cả các tài liệu Word trong một thư mục để tách các tệp PDF cùng một lúc, làm thế nào bạn có thể đạt được điều đó? Bài viết này sẽ chỉ cho bạn một mã VBA để chuyển đổi hàng loạt nhiều tài liệu Word sang tệp pdf trong Word.

Chuyển đổi hàng loạt nhiều tài liệu Word sang tệp pdf với VBA
Chuyển đổi hàng loạt nhiều tài liệu Word sang tệp pdf với Kutools cho Word


Chuyển đổi hàng loạt nhiều tài liệu Word sang tệp pdf với VBA

Đoạn mã VBA sau đây giúp bạn nhanh chóng chuyển đổi tất cả các tài liệu Word trong một thư mục sang tệp pdf cùng một lúc. Hãy làm như sau.

1. Trong Word, nhấn Khác + F11 phím để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. bên trong Microsoft Visual Basic cho các ứng dụng cửa sổ, nhấp Chèn > Mô-đun, sau đó sao chép mã VBA bên dưới vào cửa sổ Mô-đun.

Mã VBA: Chuyển đổi hàng loạt nhiều tài liệu Word sang tệp pdf trong 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. Nhấn nút F5 phím để chạy mã.

4. Hộp thoại Duyệt hiện lên, vui lòng chọn thư mục chứa tài liệu Word bạn sẽ chuyển đổi sang tệp pdf và nhấp vào OK .

Sau đó, tất cả các tài liệu Word trong thư mục đã chọn được chuyển đổi thành các tệp pdf riêng biệt cùng một lúc. Xem ảnh chụp màn hình:


Chuyển đổi hàng loạt nhiều tài liệu Word sang tệp pdf với Kutools cho Word

Nếu khó xử lý mã VBA, bạn có thể thử Chuyển đổi tài liệu tiện ích của Kutools cho Word để giải quyết vấn đề.

Kutools cho Word : Với hơn 100 phần bổ trợ Word tiện dụng, dùng thử miễn phí không giới hạn trong 60 ngày.

1. nhấp chuột Kutools Plus > Doc / Docx. Xem ảnh chụp màn hình:

2. bên trong Công cụ chuyển đổi định dạng tài liệu cửa sổ, bạn cần làm như sau:

2.1) Chọn thư mục chứa các tài liệu bạn sẽ chuyển đổi sang pdf trong Thư mục tệp nguồn phần;
2.2 Chọn Chuyển đổi docx sang pdf từ Chuyển đổi định dạng danh sách thả xuống;
2.3) Theo mặc định, Đường dẫn đích giống với nguồn hộp được chọn. Nếu bạn muốn đặt tất cả các tệp pdf đã chuyển đổi trong cùng một thư mục, chỉ cần chọn tùy chọn này;
Nếu bạn muốn tách các tệp pdf và tài liệu nguồn, bạn cần bỏ chọn Đường dẫn đích giống với nguồn và chọn một thư mục mới để lưu các tệp pdf trong Lưu vào cái hộp;
2.4) Nhấp vào Khởi đầu cái nút. Xem ảnh chụp màn hình:

3. Sau đó, một hộp thoại bật lên cho bạn biết có bao nhiêu tài liệu đã được chuyển đổi thành công, hãy nhấp vào OK nút và đóng Công cụ chuyển đổi định dạng tài liệu cửa sổ.

Bây giờ tất cả các tài liệu định dạng .docx đều được chuyển đổi thành tệp pdf.

Nếu bạn muốn dùng thử miễn phí tiện ích này, vui lòng truy cập tải xuống miễn phí phần mềm đầu tiên, và sau đó đi đến áp dụng hoạt động theo các bước trên.


Công cụ năng suất Word được đề xuất

 

Kutools cho Word - Hơn 100 tính năng nâng cao cho Word, tiết kiệm 50% thời gian của bạn

  • Các hoạt động phức tạp và lặp đi lặp lại có thể được thực hiện xử lý một lần trong vài giây.
  • Chèn nhiều hình ảnh trên các thư mục vào tài liệu Word cùng một lúc.
  • Hợp nhất và kết hợp nhiều tệp Word trên các thư mục thành một với thứ tự mong muốn của bạn.
  • Chia tài liệu hiện tại thành các tài liệu riêng biệt theo tiêu đề, ngắt phần hoặc các tiêu chí khác.
  • Chuyển đổi tệp giữa Doc và Docx, Docx và PDF, bộ sưu tập các công cụ để chuyển đổi và lựa chọn phổ biến, v.v.
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Chengchi · 3 months ago
    VBA 很棒!!感謝您的分享。
  • To post as a guest, your comment is unpublished.
    K DEG · 4 months ago
    This saved my day, thanks so much!

    I would just like to point out for people using this, if the Word seems to freeze, just wait - it is generating the .pdf files. My Word froze but I opened the folder of the files, and could see that it was indeed generating the .pdf for all files.
  • To post as a guest, your comment is unpublished.
    Garrie · 4 months ago
    If you change
    xFileName = Dir(xFolder & "*.*", vbNormal)
     to 
    xFileName = Dir(xFolder & "*.doc*", vbNormal)
    the macro will not crash when there are non-Word files in the same folder.

  • To post as a guest, your comment is unpublished.
    Garrie · 4 months ago
    If you change
    xIndex = InStr(xFileName, ".") + 1
     to 
    xIndex = InStrRev(xFileName, ".") + 1
    it will search from the end of the string to find the first period. This will avoid problems where the filename contains periods.
  • To post as a guest, your comment is unpublished.
    Jirka · 5 months ago
    Change
     xIndex = InStr(xFileName, ".") + 1


  • To post as a guest, your comment is unpublished.
    San · 1 years ago
    The VBA code is great. Cheers ,ate
  • To post as a guest, your comment is unpublished.
    Doris · 1 years ago
    thanks for vba code , it helps a lot.
  • To post as a guest, your comment is unpublished.
    Eric Smith · 1 years ago
    Hello, Thank you so much for this code. It is working well, however, I get a dialog box after each conversion to save the word doc and I have to save. Can you include code in the macro to make that save and close the file instead of having to close each one?
    • To post as a guest, your comment is unpublished.
      Rebecca · 1 years ago
      if you add "ActiveDocument.Save" right above "ActiveDocument.Close" it will save the document before closing itself so you don't have to always hit the save prompt.
  • To post as a guest, your comment is unpublished.
    9aks92 · 1 years ago
    Hi,

    I get runtime error '424':
    Object required

    image attached.


    Please help.

    Thanks.
  • To post as a guest, your comment is unpublished.
    Akshay · 1 years ago
    Hi,

    I get runtime error '424':
    Object required

    at the below code

    Documents.Open Filename:=xFolder & xFileName, _
    ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
    PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
    WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
    wdOpenFormatAuto, XMLTransform:=""


    wdOpenFormatAuto = 0 it says.

    Please help.

    Thanks.
  • To post as a guest, your comment is unpublished.
    Stefan · 2 years ago
    Hi there,


    is there an easy way to adjust the VBA Code so that the Documents are convertet to .txt-Files?
  • To post as a guest, your comment is unpublished.
    Sammy · 2 years ago
    Is there any way to have the file name taken from the text of the document?
  • To post as a guest, your comment is unpublished.
    Marzio · 2 years ago
    VBA if i try to convert file that contains macros the macro swith to open file and ends without close file.
  • To post as a guest, your comment is unpublished.
    michaelwaung · 2 years ago
    So nice blog, Thanks for sharing this blog. It Has so useful information for users. I liked this information so much.
    Hope you keep sharing such kind of information convert word doc to html