邮件合并的最后一行数据

时间:2015-07-03 04:05:54

标签: excel-vba merge row vba excel

我目前正在使用excel中的VBA。我有一个非常大的ex​​cel数据库,许多不同的人使用它。因此,我们在电子表格的底部输入数据。我在Excel文件中创建了一个按钮,以自动将文件与Word合并,以创建供用户打印的表单。但是,由于我们的最新数据位于Excel的底部,因此您需要通过一些额外的步骤来选择该数据(即完全合并 - >编辑单个文档 - >选择范围文件从8000到8000)。所以,我正在寻找一个VBA代码添加到我当前的按钮,它将自动选择最后一组数据并将其合并到word中。有谁知道如何做到这一点?我们不断添加数据点,因此它不能是设置的行号。

我正在使用的当前代码:

    Sub RunMailMerge()

Dim wdOutputName, wdInputName As String
wdOutputName = ThisWorkbook.Path & "\WHAT database CURRENT " & Format(Date, "d mmm yyyy")
wdInputName = ThisWorkbook.Path & "\Recreated Quote Form.docx"

' open the mail merge layout file
Dim wdDoc As Object
Set wdDoc = GetObject(wdInputName, "Word.Document")
wdDoc.Application.Visible = True

With wdocSource.mailmerge
    .Destination = wdSendToNewDocument
    .SuppressBlankLines = True
    With .DataSource
        .First Record = wdDefaultFirstRecord
    End With
    .Execute Pause:=False
End With

' show and save output file
wdDoc.Application.Visible = True
wdDoc.Application.ActiveDocument.SaveAs wdOutputName

' cleanup
wdDoc.Close SaveChanges:=False
Set wdDoc = Nothing

End Sub

P.S。

这段代码有效,但它说有一个弹出窗口说明有一个问题与wdocSource.mailmerge((运行时错误424对象要求))任何人都可以帮我这个吗?请记住,我对计算机很满意,但对VBA来说是新手!

1 个答案:

答案 0 :(得分:0)

这是我的方法。

为你的最后一行声明一个常量,如下所示:

Const wdDefaultLastRecord = 10 '(last record)

并将其设置如下:

With .DataSource

    .First Record = wdDefaultFirstRecord

    .LastRecord = wdDefaultLastRecord

End With