Word Mail Merge记录计数返回-1

Dan*_*sen 0 vba datasource ms-word mailmerge word-vba

我正在尝试通过单词邮件合并文档的数据源.

我通过邮件合并数据源运行的代码如下所示:

ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
lastDoc = ActiveDocument.MailMerge.DataSource.RecordCount
Run Code Online (Sandbox Code Playgroud)

现在一切都很好.我运行数据源并做我需要做的事情.

现在,由于其他原因,我正在制作此用户的用户使用小帮助函数:Mail Merger Helper(它存在于Word 2010中)

但是当他们使用它时,我的ActiveDocument.MailMerge.DataSource.RecordCount返回-1.这意味着它无法决定数据源中的记录数.我的假设是Mail Merger Helper没有正确设置数据源.

但这阻止我迭代邮件合并(当他使用帮助程序时,他仍然可以激活通常的邮件合并功能,例如查看合并的结果).

怎么了?有没有替代迭代合并,所以我可以逐个获取记录?

Dan*_*sen 6

谢谢bibadia,你带领我走上正轨.

将ActiveRecord设置为wdLastRecord时.您可以从ActiveRecord中读取最后一个数据源.所以我只需要抓住它,然后再次将ActiveRecord设置为wdFirstRecord.

Dim count As Integer

ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
count = ActiveDocument.MailMerge.DataSource.ActiveRecord
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
Run Code Online (Sandbox Code Playgroud)