通过链接的 Excel 表进行电子邮件邮件合并

通过链接的 Excel 表进行电子邮件邮件合并

我有一个 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 字段。

相关内容