【问题标题】:Last Row of Data for Mail Merge邮件合并的最后一行数据
【发布时间】:2015-09-20 18:59:50
【问题描述】:

我目前在 Excel 中使用 VBA。我有一个非常大的 excel 数据库,许多不同的人都在使用它。因此,我们在电子表格底部输入数据。我在 excel 文件中创建了一个按钮,用于自动将文件与 Word 合并,以创建供用户打印的表单。但是,由于我们最新的数据位于 excel 的底部,因此您必须在 word 中执行一些额外的步骤才能选择该数据(即完成合并 --> 编辑单个文档 --> 选择文档范围从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

结束子

附言

此代码有效,但它说有一个弹出窗口说明 wdocSource.mailmerge 存在问题((运行时错误 424 需要对象))任何人都可以帮我解决这个问题吗?请记住,我擅长计算机,但对 VBA 很陌生!

【问题讨论】:

  • 获取最后一行你可能会看到this

标签: excel merge row vba


【解决方案1】:

这是我的方法。

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

Const wdDefaultLastRecord = 10 '(last record)

并将其设置如下:

With .DataSource

    .First Record = wdDefaultFirstRecord

    .LastRecord = wdDefaultLastRecord

End With

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多