我目前正在使用excel中的VBA。我有一个非常大的excel数据库,许多不同的人使用它。因此,我们在电子表格的底部输入数据。我在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来说是新手!
答案 0 :(得分:0)
这是我的方法。
为你的最后一行声明一个常量,如下所示:
Const wdDefaultLastRecord = 10 '(last record)
并将其设置如下:
With .DataSource
.First Record = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With