1

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

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

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

4

2 回答 2

0

你能在 Microsoft Query 中进行数据转换吗?也就是说,您当前拥有的位置:

Data Source -> Mail Merge Template

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

Data Source -> Microsoft Query -> Mail Merge Template

自从我在 Word 中使用邮件合并已经有一段时间了,但我不记得能够对它施加太多控制......

于 2009-09-17T20:22:54.783 回答
0

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

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

于 2015-04-21T14:15:24.143 回答