mở word có mailings bằng code VBA

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Chào các bạn GPE, mình có đoạn code sau để mở file word mailings và xuất file word mailings đó ra file pdf bằng VBA, nhưng khi áp dụng vào bài của mình thì bị lỗi không mở lên được
Mình không biết sửa thế nào,các bạn xem giúp và sửa giúp mình nhé, làm sao để mở file word mailngs sau đó xuất ra file pdf mailings bằng code VBA !, mình cảm ơn các bạn nhiều ạ !3238
32393240

Private Sub CommandButton1_Click()
Dim word_app As Object, doc As Object, link As Variant
    Set word_app = CreateObject("Word.Application")

With word_app
        .Visible = True
        link = "E:stt.docx"
        Set doc = .documents.Open(link)
    End With
    doc.MailMerge.OpenDataSource Name:="E:Data.xlsm", SQLStatement:="SELECT * FROM `Word$`"

End Sub

Bạn thử code này xem

Private Sub CommandButton1_Click()
  Dim wordApp As Object
  Dim doc As Object
  Dim link As String

Set wordApp = CreateObject("Word.Application")

With wordApp
    .Visible = True
    link = "E:stt.docx"
    Set doc = .Documents.Open(link)
  End With

doc.MailMerge.MainDocumentType = wdFormLetters
  doc.MailMerge.OpenDataSource Name:="E:Data.xlsm", _
    LinkToSource:=True, _
    Connection:="Data Source=E:Data.xlsm;Mode=Read", _
    SQLStatement:="SELECT * FROM `Word$`"

doc.MailMerge.Execute
End Sub

www.giaiphapexcel.com/diendan/threads/m%E1%BB%9F-word-c%C3%B3-mailings-b%E1%BA%B1ng-code-vba.163982/

Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
★★★★★ 5 ★ 1 👤 1 ▥ 0
Quảng cáo

Bạn nên đọc

One Response

  1. hands says:

    vẫn bị lỗi bạn ah, bạn xem giúp mình nhé

    Mày mò mãi rồi cũng biết. Lỗi ở đây: Câu "SELECT * FROM `Word$`"
    1. Ở bài #4 tôi nói dấu nháy ' đúng nhưng không phải. Dấu nháy ` mới là dấu đúng.
    2. Trong Data.xlsm của bạn thì chỉ có 1 sheet mang tên Sheet1 chứ không có sheet tên là Word.
    Do đó, câu lệnh đúng phải là: "SELECT * FROM `Sheet1$`"

    Bạn sửa rồi chạy lại thử xem. Tôi thử OK rồi.

    mình chạy mở word có mailings được rồi, bạn giúp mình xíu nữa nhé
    bạn code giúp mình làm sao để xuất file mailing word đó ra 1 file *.pdf để đem đi in vậy bạn ? mình sử dụng doc.printOut chỉ xuất pdf được 1 trang ???
    Mình cảm ơn các bạn nhiều lắm ạ !!!

    Private Sub CommandButton1_Click()
    Dim word_app As Object, doc As Object, link As Variant
        Set word_app = CreateObject("Word.Application")
    
    With word_app
            .Visible = True
            link = "E:stt.docx"
            Set doc = .documents.Open(link)
     doc.PrintOut
    
    End With
        doc.MailMerge.OpenDataSource Name:="E:Data.xlsm", SQLStatement:="SELECT * FROM `sheet1$`"
    
    End Sub

    Thêm mấy dòng này:

    With doc.MailMerge
            .ViewMailMergeFieldCodes = 9999998
            'Ghi toan bo (All) dòng ra file moi
            .Destination = 0        'wdSendToNewDocument
            .SuppressBlankLines = True
            With .DataSource
                .FirstRecord = 1        'wdDefaultFirstRecord
                .LastRecord = -16       'wdDefaultLastRecord
            End With
            .Execute Pause:=False
        End With
        doc.Close False
        Set doc = word_app.ActiveDocument
        doc.ExportAsFixedFormat "D:GPE_Downloadstt.pdf", 17
        doc.Close False
        word_app.Documents.Open Filename:="D:GPE_Downloadstt.pdf"
        word_app.Activate

    Code chuyển đến file pdf lúc này đang được mở.

    mình làm được rồi, cảm ơn bạn nhiều nhé !

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm