我有一个Word文档,用作邮件合并的源文档。我可以编辑文档,但不能编辑用于合并的数据。我需要转换数据源中的一些数据(具体来说,我需要取数字(例如342)并在单词中添加它们的值(例如<!>“三百四十二(342)<!>”; ))。我可以编写一个VBA函数来进行转换,但我不确定如何最好地将数据传递给该函数。

有没有什么方法可以将宏与文档中的特定点相关联,让合并驱动转换过程? (我正在考虑如何在Word字段中使用公式;我已经在文档中有一些 { IF { MERGEFIELD foo } > 75 { MERGEFIELD foo } { = { MERGEFIELD foo } * 20 } } 形式的东西。如果我可以添加一些东西,那么我可以去 { FUNCTION WordNum { MERGEFIELD number } } ,这将是理想的。)

或者,我认为我可以使用VBA在邮件合并的数据源(特别是document.MailMerge.DataSource)和重写字段中进行搜索。如果我走这条路线,我应该在哪里执行宏,以便在从数据源读取数据之后,但在它与文档合并之前获取数据?

有帮助吗?

解决方案 2

似乎没有办法从嵌入式Word宏中调用任意函数,所以我选择了VBA路径。

我在调用AutoOpen的源文档中添加了一个MailMerge.EditDataSource宏,然后遍历表格进行更改。

其他提示

您可以在Microsoft Query中进行数据转换吗?也就是说,你目前所在的地方:

Data Source -> Mail Merge Template

创建位于数据源和Word之间的Microsoft Query:

Data Source -> Microsoft Query -> Mail Merge Template

自从我在Word中使用Mail Merge以来已经有一段时间但是我不记得能够对它施加太大的控制......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top