Nhờ hướng dẫn cách gộp các file word

Liên hệ QC

feelingyes

Thành viên tiêu biểu
Tham gia
24/9/07
Bài viết
458
Được thích
395
Nghề nghiệp
Economic
Chào các anh chị GPE

Tôi thường phải copy/paste rất nhiều file word vào 1 file tổng hợp, nên rất muốn tìm cách gộp tự động. Tôi đã thử INSERT/OBJECT/TEXT FROM FILE nhưng kết quả sau khi insert tự động thì các file bị đè chồng lên nhau ngay tại trang 1.


Hiện tại, tôi gửi file đính kèm, giả dụ có 5 file word, trong cùng 1 thư mục
- File 1: 1 page
- File 2: 2 page
- File 3: 2 page
- File 4: 1 page
- File 5: 1 page

Yêu cầu: File tổng hợp , sẽ bao gồm 5 file trên, và bao gồm thành 7 trang (xem file tổng hợp ví dụ, theo file đính kèm)

Rất mong các anh chị có kinh nhiệm chia sẻ giúp.

Cám ơn
 

File đính kèm

  • GPEX.zip
    77 KB · Đọc: 18
Gộp nhiều tập tin Word bằng cách copy/paste bằng tay thì đơn giản hơn. Còn bằng code thì nhiều khi khó hơn nhiều khi các tập tin Word khác nhau về page layout, header, footer, page numbering, bookmarks và cross-references, Tables of Contents, Indexes v...v Nhất là khi các tập tin dùng những tên style như nhau nhưng được định nghĩa khác nhau.

Nếu coi thường, lờ đi các vấn đề về page numbering, Tables of Contents or Indexes, về sự xung đột các footnote, endnote numbering và positioning, sự trùng lặp của các bookmark thì ...

Do các tập tin của bạn là doc nên trong code có
Mã:
Dir(strFolder & "*.doc")

Nếu là các "docx" thì sửa thành
Mã:
Dir(strFolder & "*.docx")

Có thể không dùng Dir mà dùng FileSystemObject (tìm trên GPE)

Tải tập tin MergeWords.docm về để cùng thư mục với các tập tin DOC.

Code chỉ là ví dụ. Nếu không hài lòng thì tự tìm kiếm.
 

File đính kèm

  • MergeWords.rar
    18.3 KB · Đọc: 57
Gộp nhiều tập tin Word bằng cách copy/paste bằng tay thì đơn giản hơn. Còn bằng code thì nhiều khi khó hơn nhiều khi các tập tin Word khác nhau về page layout, header, footer, page numbering, bookmarks và cross-references, Tables of Contents, Indexes v...v Nhất là khi các tập tin dùng những tên style như nhau nhưng được định nghĩa khác nhau.

Nếu coi thường, lờ đi các vấn đề về page numbering, Tables of Contents or Indexes, về sự xung đột các footnote, endnote numbering và positioning, sự trùng lặp của các bookmark thì ...

Do các tập tin của bạn là doc nên trong code có
Mã:
Dir(strFolder & "*.doc")

Nếu là các "docx" thì sửa thành
Mã:
Dir(strFolder & "*.docx")

Có thể không dùng Dir mà dùng FileSystemObject (tìm trên GPE)

Tải tập tin MergeWords.docm về để cùng thư mục với các tập tin DOC.

Code chỉ là ví dụ. Nếu không hài lòng thì tự tìm kiếm.
Ngưỡng mộ anh bat quá, save lại để nhớ khi cần xài!
GỘP NHIỀU TẬP TIN WORD!
 
Gộp nhiều tập tin Word bằng cách copy/paste bằng tay thì đơn giản hơn. Còn bằng code thì nhiều khi khó hơn nhiều khi các tập tin Word khác nhau về page layout, header, footer, page numbering, bookmarks và cross-references, Tables of Contents, Indexes v...v Nhất là khi các tập tin dùng những tên style như nhau nhưng được định nghĩa khác nhau.

Nếu coi thường, lờ đi các vấn đề về page numbering, Tables of Contents or Indexes, về sự xung đột các footnote, endnote numbering và positioning, sự trùng lặp của các bookmark thì ...

Do các tập tin của bạn là doc nên trong code có
Mã:
Dir(strFolder & "*.doc")

Nếu là các "docx" thì sửa thành
Mã:
Dir(strFolder & "*.docx")

Có thể không dùng Dir mà dùng FileSystemObject (tìm trên GPE)

Tải tập tin MergeWords.docm về để cùng thư mục với các tập tin DOC.

Code chỉ là ví dụ. Nếu không hài lòng thì tự tìm kiếm.

Cám ơn sự giúp đỡ rất nhiều của anh Batman1.
 
Lần chỉnh sửa cuối:
Anh Batman1

Code chạy rất ok, tuy nhiên chỉ có bị lỗi phần giãn dòng, khiến cho chữ bị mất. (phần consignee, notify và description of goods)

Anh xem giúp em có cách nào khắc phục sự cố giãn dòng, sau khi copy/paste bằng code không? Em gửi file đính kèm, mong anh xem giúp.

1584698930714.png
 

File đính kèm

  • MergeWords-test.zip
    103.7 KB · Đọc: 21
Anh Batman1

Code chạy rất ok, tuy nhiên chỉ có bị lỗi phần giãn dòng, khiến cho chữ bị mất. (phần consignee, notify và description of goods)

Anh xem giúp em có cách nào khắc phục sự cố giãn dòng, sau khi copy/paste bằng code không? Em gửi file đính kèm, mong anh xem giúp.
Thử:
1. Xóa Sub CopyPageSetup

2. Sub MergeWords mới
Mã:
Sub MergeWords()
Dim strFolder As String, strFile As String, strDest As String
Dim srcDoc As Document
    Application.ScreenUpdating = False
    strFolder = ThisDocument.Path & "\"
    strDest = ThisDocument.FullName
    strFile = Dir(strFolder & "*.doc")
    Do While strFile <> ""
        If strFolder & strFile <> strDest Then
            Set srcDoc = Documents.Open(strFolder & strFile)
            Selection.WholeStory
            Selection.Copy
            With ThisDocument
                .Activate
                Selection.PasteAndFormat (wdFormatOriginalFormatting)
                Selection.Start = .Content.End
                Selection.InsertBreak (wdSectionBreakNextPage)
            End With
            srcDoc.Close False
        End If
        strFile = Dir()
    Loop
    With ThisDocument
        .SaveAs2 strFolder & "Tonghop.docx", wdFormatXMLDocument
        .Close False
    End With
    Set srcDoc = Nothing
    Application.ScreenUpdating = True
End Sub
 
Thử:
1. Xóa Sub CopyPageSetup

2. Sub MergeWords mới
Mã:
Sub MergeWords()
Dim strFolder As String, strFile As String, strDest As String
Dim srcDoc As Document
    Application.ScreenUpdating = False
    strFolder = ThisDocument.Path & "\"
    strDest = ThisDocument.FullName
    strFile = Dir(strFolder & "*.doc")
    Do While strFile <> ""
        If strFolder & strFile <> strDest Then
            Set srcDoc = Documents.Open(strFolder & strFile)
            Selection.WholeStory
            Selection.Copy
            With ThisDocument
                .Activate
                Selection.PasteAndFormat (wdFormatOriginalFormatting)
                Selection.Start = .Content.End
                Selection.InsertBreak (wdSectionBreakNextPage)
            End With
            srcDoc.Close False
        End If
        strFile = Dir()
    Loop
    With ThisDocument
        .SaveAs2 strFolder & "Tonghop.docx", wdFormatXMLDocument
        .Close False
    End With
    Set srcDoc = Nothing
    Application.ScreenUpdating = True
End Sub

em chạy thử, nó vẫn bị giãn dòng, anh nhìn ảnh chụp bên dưới nhé. Anh xem có cách nào khắc phục không ạ?

file gốc,

1584752642304.png


file sau khi copy

1584752697868.png
 
em chạy thử, nó vẫn bị giãn dòng, anh nhìn ảnh chụp bên dưới nhé. Anh xem có cách nào khắc phục không ạ?
Thực ra tôi không tìm hiểu về vấn đề này. Vì như tôi đã nói trong bài đầu, trong trường hợp tổng quát có quá nhiều vấn đề.
Tuy nhiên với 2 tập tin của bạn tôi có kết quả bình thường. Tôi đính kèm tập tin ghi lại quá trình chạy code.

Tôi chạy trên Windows XP Home 32 bit + Word 2010 32 bit.

Tôi dừng ở đây. Bạn đợi người khác giúp nhé.
 

File đính kèm

  • myavi.rar
    372.3 KB · Đọc: 21
Vâng đúng, em đang dùng word 2016 và bị hiện tượng này. Cám ơn cả nhà mình nhiều
 
Web KT
Back
Top Bottom