我能够让 IF 字段代码工作,不知道如何,它刚刚开始工作。
我还发现您可以通过使用 DOCVARIABLE 或 REF 域代码在 Word 邮件合并文档中使用 VBA 代码。
对于其他有此问题的人:
像这样添加一个文档变量:
{DOCVARIABLE MyVariable}
或像这样的书签参考:
{REF MyBookmarkReference}
然后在 VBA (Alt+F11) 中执行以下操作:
在 Project(项目名称)中,例如 Project(MailMergeDemo) 在“Microsoft Word Objects”下双击“ThisDocument”
并输入以下代码
Dim WithEvents app As Application
Private Sub Document_Close()
Set app = Nothing
End Sub
Private Sub Document_Open()
Set app = Application
End Sub
从下拉列表中选择应用程序对象,然后选择 app_MailMergeBeforeRecordMerge 事件并输入以下代码:
Private Sub app_MailMergeBeforeRecordMerge(ByVal Doc As Document, Cancel As Boolean)
Doc.Variables("MyVariable").Value = Doc.MailMerge.DataSource.DataFields(SomeFieldName).Value
Doc.Bookmarks("MyBookmarkReference").Range.Text = "this is a test"
Doc.Fields.Update
End Sub
您将需要关闭并重新打开文档以挂钩应用程序对象。
有关详细信息,请参阅http://support.microsoft.com/kb/285333。