在您有一个数字后跟文本的情况下,您应该能够这样做:
{ SET X { MERGEFIELD theamount } }{ =X*3 }
您在其中写合并字段的名称而不是“金额”
(像往常一样,所有的 {} 都必须是特殊的域代码大括号,您可以在 Windows Word 中使用 ctrl-F9 插入)。
如果需要测试“theamount”是否以“CR”结尾,可以使用
{ IF "{ MERGEFIELD theamount }" = "*CR" "it ends with CR" "it doesn't end with CR" }
如果金额后面的文本恰好是您在区域设置中设置的货币符号,您可能会遇到问题。
顺便说一句,没有(实用的)方法可以从“字段语言”中调用 Word VBA 宏/函数。一般来说,最好尝试确保您的数据源具有合并所需格式的数据,但是......
- 如果数据源理解 SQL(例如通过 OLEDB 或 ODBC 连接的 Access、Excel 和文本数据源理解 Jet SQL),您可以使用 Word VBA 的 OpenDataSOurce 方法的 SQLStatement 参数进行一些数据转换。但请注意,您最多可以获得 511 个 SQL 字符来执行此操作。
- 如果您的数据源不理解 SQL(或仅理解 Word 在内部实现的粗略方言),在某些情况下,您可以使用连接到 Jet .mdb 的 DATABASE 字段将内置 Access VBA 函数应用于您的数据
- “已批准”的方法是使用 Word 的 MailMerge 事件来修改数据,通常通过设置文档变量和使用 { DOCVARIABLE } 字段来插入数据。