目前我有这个:
{IF {MERGEFIELD M1}> {MERGEFIELD M2}“谢谢!” “没有”}
但它不起作用。它只会像这样工作:{ MERGEFIELD M1} > 3
是否可以比较两个MERGEFIELD值?
答案 0 :(得分:0)
您必须锁定MERGEFIELD,以便在重新计算IF字段时不会重新计算它们。当重新计算IF字段时,MS Word将自动重新计算MERGEFIELD到«M1»和«M2»,因此,自然,IF字段将无法获得正确的结果。 要锁定字段,请选择它并按CTRL + F11。要解锁它,请选择它并按CTRL + SHIFT + F11。有关详细信息,请参阅Control how MS Word fields are updated。
我相信MS Word的邮件合并不会对锁定的合并字段起作用。 作为替代方案,您可以以编程方式执行mail merge from .NET并使其在其他嵌套字段(例如示例中的IF)和锁定字段中工作。
答案 1 :(得分:0)
在“IF字段的示例”http://office.microsoft.com/en-us/word-help/examples-of-if-fields-HP005187676.aspx中,给出了一个涵盖您想要的内容的示例:
以下是使用修改IF域代码的方法的一些示例 他们与其他领域代码一致: - 将数据字段与另一个数据字段或书签进行比较 该IF字段将Rate数据字段中的数字与in中的数字进行比较 折扣数据字段。如果数字相等,则指定文本 打印出来。
{IF {MERGEFIELD Rate} = {MERGEFIELD Discount}“我们将为您提供 更大的折扣。 “”}}
(如果费率数据字段中的数字不等于数字中的数字 折扣字段,不打印文字。)
我还没有测试过,但可能是你比较的两个字段的内容之间有细微的差别吗?从哪种类型的数据源中提取数据?如果数据没有被正确修剪,我不太确定Word是否将值视为值;想一想在值的开头或结尾处的空白字符 - 你看它,但你看不到它。为什么不将数据输出到带有“[{MERGEFIELD A1}] [{MERGEFIELD A2}]”的测试文档中,以便检查修剪?