Mở Word với VBA

Liên hệ QC

moihocvba

Thành viên thường trực
Tham gia
16/8/20
Bài viết
207
Được thích
49
Xin chào anh chị GPE, em có viết một đoạn code để mở 1 file word có chứ Mail Merge, nhưng khi chạy code nó không có hỏi update dữ liệu như khi dùng chuột mở bình thường, anh chị xem em viết sai ở đâu ạ

Khi em ở thủ công thì nó báo thông báo này, mình bấm Yes thì nó cập nhật dữ liệu mới trong File Excel
1653464419609.png

Nhưng khi em viết code VBA như này thì mở nó không hỏi, và cũng không update ạ!
Mã:
Sub MoWord
Dim word_app As Object, link As Variant
Set word_app = CreateObject("Word.Application")

With word_app
    .Visible = True
    link = "E:\Tron Thu\XM - 1.doc"
    .documents.Open (link)
End With
End sub

Em phải sửa như thế nào, để nó không hỏi mà tự update luôn ạ, Em cám ơn anh chị ạ!
 
Xin chào anh chị GPE, em có viết một đoạn code để mở 1 file word có chứ Mail Merge, nhưng khi chạy code nó không có hỏi update dữ liệu như khi dùng chuột mở bình thường, anh chị xem em viết sai ở đâu ạ

Khi em ở thủ công thì nó báo thông báo này, mình bấm Yes thì nó cập nhật dữ liệu mới trong File Excel
View attachment 276429


Em phải sửa như thế nào, để nó không hỏi mà tự update luôn ạ, Em cám ơn anh chị ạ!

Cái này hình như phải thiết lập SQLSecurityCheck, lúc trước tôi có gặp mà quên rồi, nó ngăn chặn các virus chạy các câu lệnh SQL. Bạn kiếm từ khóa đó xem thử.
 
Upvote 0
Cám ơn a, E đã tìm, nhưng ko ra ạ.
Chủ thớt thử tham khảo bài viết này xem, trên trang web của Microsoft.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử code sau. Biết đâu lại may mắn.

"Nó" có hỏi hay không không quan trọng. Vấn đề là sau đó bạn không phải chọn nguồn dữ liệu thì có thể trộn thư luôn được không.

Cách test: trước hết mở tập tin Excel -> chỉnh sửa dữ liệu -> lưu lại -> đóng tập tin Excel -> chạy code bên dưới -> không chọn lại Repcipients -> Finish & Merge - > Kiểm ra xem kết quả có chứa cac chỉnh sửa hay không.

Mã:
Sub MoWord()
Dim word_app As Object, doc As Object, link As Variant
    Set word_app = CreateObject("Word.Application")
  
    With word_app
        .Visible = True
        link = "E:\Tron Thu\XM - 1.doc"
        Set doc = .documents.Open(link)
    End With
    doc.MailMerge.OpenDataSource Name:="<ĐƯỜNG DẪN TỚI TẬP TIN EXCEL>", SQLStatement:="SELECT * FROM `Word$`"
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử code sau. Biết đâu lại may mắn.

"Nó" có hỏi hay không không quan trọng. Vấn đề là sau đó bạn không phải chọn nguồn dữ liệu thì có thể trộn thư luôn được không.

Cách test: trước hết mở tập tin Excel -> chỉnh sửa dữ liệu -> lưu lại -> đóng tập tin Excel -> chạy code bên dưới -> không chọn lại Repcipients -> Finish & Merge - > Kiểm ra xem kết quả có chứa cac chỉnh sửa hay không.

Mã:
Sub MoWord()
Dim word_app As Object, doc As Object, link As Variant
    Set word_app = CreateObject("Word.Application")
 
    With word_app
        .Visible = True
        link = "E:\Tron Thu\XM - 1.doc"
        Set doc = .documents.Open(link)
    End With
    doc.MailMerge.OpenDataSource Name:="<ĐƯỜNG DẪN TỚI TẬP TIN EXCEL>", SQLStatement:="SELECT * FROM `Word$`"
End Sub
Quá tuyệt vời, em đã áp dụng thành công, cám ơn anh batman1 nhiều nhé!
 
Upvote 0
Web KT
Back
Top Bottom