Cao Cường
Cao Cường
Thảo luận 0 thảo luận
Vỗ tay 1 vỗ tay
Lượt xem 140 lượt xem

Tách một hoặc nhiều trang Word bất kỳ bằng VBA

May 09 2022

Bài viết này sẽ giới thiệu với các bạn cách tách trang Word ra khỏi một file Word bằng chương trình VBA Word (VBA Word chứ không phải là VBA Excel nhé). Cách này có thể áp dụng cho một trang hoặc nhiều trang đều được nhé.

Vì sao cần tách trang Word?

Bạn có một file Word rất nhiều trang, nhiều khi bạn cần tách một vài trang trong Word ra thành một file riêng để phục vụ nhu cầu nào đó, nhưng mặc định của Word không hỗ trợ chúng ta làm như vậy, nếu làm thủ công thì hầu như chúng ta sẽ copy từng trang muốn tách và dán vào một file Word mới, nếu nhu cầu lớn thì việc này sẽ rất mất thời gian.

Cách tách trang Word bằng VBA

VBA Word là gì?

Nhắc tới VBA Excel thì hẳn nhiều bạn sẽ biết, nhưng vba Word có lẽ ít bạn biết, cũng như VBA Excel vậy, VBA Word là một chương trình mở rộng của Microsoft dành cho Word, mục đích để bạn có thể làm những việc mà mặc định Word không hỗ trợ.

Khóa học soạn thảo, đánh văn bản với Word - Tuyệt đỉnh Microsoft Word

Tách trang Word bằng VBA Word như thế nào?

Mình có một file Word gồm 11 trang, bây giờ mình sẽ tách trang 3,5,7 ra thành một file mới, các bước thực hiện như sau:

Tách một hoặc nhiều trang Word bất kỳ bằng VBA

Bước 1: Lưu file Word đó vào một folder khác, mình hay tạo ra một bản backup trước khi làm, đề phòng trong quá trình thực hiện thao tác tách trang Word gặp lỗi sẽ mất dữ liệu không có file backup thì phiền lắm.

Tách một hoặc nhiều trang Word bất kỳ bằng VBA

Bước 2: Vào menu Developer rồi chọn Visual Basic để mở chương trình VBA Word lên:

Tách một hoặc nhiều trang Word bất kỳ bằng VBA

Bước 3: Insert\Module

Tách một hoặc nhiều trang Word bất kỳ bằng VBA

Bước 4: Copy đoạn code sau dán vào khung soạn thảo. Đây là đoạn code dùng để tách trang Word đã được soạn sẵn, các bạn chỉ cần sử dụng ngay.

Sub TachFile()
Application.ScreenUpdating = False
Dim Doc As Document, Pages As Long
Set Doc = ActiveDocument
Selection.EndKey Unit:=wdStory
Selection.InsertBreak Type:=wdPageBreak
Selection.HomeKey Unit:=wdStory
Pages = Doc.BuiltInDocumentProperties(wdPropertyPages)
ChangeFileOpenDirectory ActiveDocument.Path
For i = 1 To Pages - 1
    Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1
    Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
    Selection.Cut
    With Documents.Add
        Selection.Paste
        Selection.EndKey Unit:=wdStory
        Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        If AscW(Selection.Text) = 12 Or AscW(Selection.Text) = 13 Or AscW(Selection.Text) = 22 Then Selection.TypeBackspace
        .SaveAs Left(Doc.Name, InStrRev(Doc.Name, ".") - 1) & "_" & VBA.Format(i, "000") & ".doc", 0
        .Close
    End With
Next
Application.ScreenUpdating = True
End Sub
Tách một hoặc nhiều trang Word bất kỳ bằng VBA

Bước 5: Nhấn F5 hoặc click vào icon màu xanh để tiến hành tách file Word.

Tách một hoặc nhiều trang Word bất kỳ bằng VBA

Bước 6: Tắt file Word đi và chọn Dont't Save để nội dùng file trước khi tắt không thay đổi:

Tách một hoặc nhiều trang Word bất kỳ bằng VBA

Bước 7: Lúc này ở folder mà bạn lưu file Word lúc nãy đã xuất hiện 11 file Word mới, chính là 11 trang lúc đầu bài mình nói.

Tách một hoặc nhiều trang Word bất kỳ bằng VBA

Bước 8: Bây giờ chúng ta sẽ tiến hành nối các trang số 3,5,7 lại thành 1 file như yêu cầu ban đầu mà mình đề ra, đầu tiên bạn mở một file Word trắng lên.

Bước 9: Chọn Insert

Tách một hoặc nhiều trang Word bất kỳ bằng VBA

Bước 10: Object\Text form File…

Tách một hoặc nhiều trang Word bất kỳ bằng VBA

Bước 11: Chọn đến nơi lưu file mà chúng ta đã thực hiện tách trang Word ở bước trước chọn tiếp các file là nội dung các trang số 3, 5 ,7 rồi nhấn Insert:

Tách một hoặc nhiều trang Word bất kỳ bằng VBA

Bước 12: Như vậy là xong rồi, việc của bạn là lưu file Word mới tạo xong nữa mà thôi.

Tổng kết

Như vậy là mình vừa giới thiệu với các bạn cách tách trang Word từ một file Word ra bằng VBA Word có thể áp dụng cho một trang hoặc nhiều trang rồi. Nếu có thắc mắc gì hãy để lại bình luận bên dưới bài viết này nhé.

Cùng tham gia cộng đồng hỏi đáp về chủ đề VBA

Thảo luận 0 câu trả lời
Lượt xem 140 lượt xem
Vỗ tay 1 vỗ tay

0 Bình luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội