Word 2013邮件合并VBA“参数不可选”

时间:2015-06-04 19:08:05

标签: vba ms-word word-vba mailmerge word-2013

所以我创建了一个宏来允许我的用户打开文档选择.csv并自动合并字母并打开一个新文档。我可以打开VBA然后运行这个宏,但是,如果我尝试将它添加到QAT作为按钮,它会在点击它时给我一个错误。 “论证不是可选的”。这是编码,

Sub Merge()
    Dialogs(wdDialogMailMergeOpenDataSource).Show
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With
    Documents("C:\Users\user\Documents\mytemplate.docm").Close
    SaveChanges:=wdDoNotSaveChanges
    If Err.Number = 4160 Then
        MsgBox "The file specified is not open.", vbCritical Or vbOKOnly, _
        "File Not Open"
    End If
    On Error GoTo 0
End Sub

1 个答案:

答案 0 :(得分:1)

您收到错误Argument not optional,因为您正在使用保留字Merge作为程序名称。

Sub Merge()改为Sub MyMailMerge()

注意:我没有检查其余代码,因为它超出了您的问题范围。但是我注意到了一件事。

使用Dialogs时,最好捕获任何错误。如果用户按取消按钮怎么办?

Dim dlg As Word.Dialog

Set dlg = Dialogs(wdDialogMailMergeOpenDataSource)

If dlg.Show = 0 Then Exit Sub

'~~> Rest of your code