我有一个 MS Word 2007 文档,设置为邮件合并文档。我使用 Excel 作为数据源。ClientDataMERGEFIELD
包含一个 Excel 文件 (test.xlsx)。
我想将 ClientData 中列出的 Excel 文件中的数据合并到相应的邮件合并文档中。但是,每当我启动邮件合并时,该{MERGEFIELD ClientData}
字段只会解析一次,并且不会从 ClientData 中选择下一行。
所以这:
{LINK Excel.Sheet.12 "C:\\path\\to\\file\\{MERGEFIELD ClientData}" \a \f 4 \h}
开始合并后变成这样:
{LINK Excel.Sheet.12 "C:\\path\\to\\file\\test.xlsx" \a \f 4 \h}
因此,每个邮件合并文档都使用 test.xlsx,而不是客户端特定的相应 Excel 文档(即 test1.xlsx、test2.xlsx、test3.xlsx 等)。
当合并遍历每个邮件合并文档时我希望看到以下内容:
{LINK Excel.Sheet.12 "C:\\path\\to\\file\\test.xlsx" \a \f 4 \h}
{LINK Excel.Sheet.12 "C:\\path\\to\\file\\test1.xlsx" \a \f 4 \h}
{LINK Excel.Sheet.12 "C:\\path\\to\\file\\test2.xlsx" \a \f 4 \h}
{LINK Excel.Sheet.12 "C:\\path\\to\\file\\test3.xlsx" \a \f 4 \h}
但不知为何,这并没有发生。有人有什么建议吗?
谢谢!
答案1
问题是 LINK 字段迟早总会解析所有嵌套字段。
最好的选择可能是使用 Word 的邮件合并事件,然后使用该BeforeRecordMerge
事件来:
- a. 获取文件名(test.xlsx 等)(例如通过
Doc.Mailmerge.Datasource.Datafields("ClientData").Value
) - b. 将其重新插入现有的 LINK 字段,或者更简单的是,删除现有的 LINK 字段并插入一个新的。
提示:插入一个新的空字段,然后插入整个 LINK 字段。