VBA trong word

Liên hệ QC

tueyennhi

Thành viên tích cực
Tham gia
18/10/10
Bài viết
1,192
Được thích
105
Em thấy diễn đàn có nhiều giải pháp trong vba excel, vậy còn word thì sao ạ? Đặt trường hợp mình làm file hợp đồng bằng mail merge (số lượng 200 chẳng hạn). Nhưng mình còn phải xuất file mềm (mỗi người một file). Vậy có cách nào để làm việc đó một cách tự động không ạ?
 
Sau khi thiết lập xong Mail Merge, bạn thử dùng code sau để xuất file.
PHP:
Sub MailMergeToMultiFile()
Application.ScreenUpdating = False
Dim i As Long, Doc As Document
Set Doc = ActiveDocument
ChangeFileOpenDirectory Doc.Path
With Doc.MailMerge
    If .Destination < 0 Then
        MsgBox "File hien hanh chua thiet lap Mail Merge"
    Else
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = False
        For i = 1 To .DataSource.RecordCount
            .DataSource.FirstRecord = i
            .DataSource.LastRecord = i
            .Execute Pause:=True
            ActiveDocument.SaveAs FileName:="MailMerge " & Format(i, "000")
            ActiveDocument.Close
        Next
    End If
End With
Application.ScreenUpdating = True
End Sub
Vui lòng cho mình hỏi, mình muốn đặt tên file theo field merge thì làm thế nào?
 
Upvote 0
Hình như bên trên có giải pháp cho câu hỏi này.
Giải pháp bookmark k hiểu sao mình k làm được. Tuy nhiên mình đã mò mẫn ra được cách này:

Thay dòng:
ActiveDocument.SaveAs FileName:="MailMerge " & Format(i, "000")

Bằng:
ActiveDocument.SaveAs FileName:="MailMerge " & .DataSource.DataFields("Code").Value // Với Code là giá trị cần lấy.

Mọi người tham khảo ạ.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom