如何记录Microsoft Word邮件合并模板?

时间:2016-06-02 22:07:01

标签: documentation mailmerge word-2010

我使用Word 2010中的目录邮件合并功能,使用Excel 2010电子表格作为数据源来创建格式化文档(需求)。

事情很有效,但我有一个紧凑的大括号,格式化的单个字符和字段,只有很少的空格(因为这会改变我的输出)。我插入了CTRL-F9字段,Word将它们视为自己的对象,而不是单个字符。

复杂性来自于有很多条件字段,其中一些是嵌套的,并且没有大多数代码用于查看嵌套结构的典型提示(换行符,缩进等)

是否有直接的方法来记录文档中的邮件合并模板代码?或者,如果我想利用空格和其他可读性提示,我还需要维护一个单独的文本文件吗?

1 个答案:

答案 0 :(得分:3)

您可以采取的措施来帮助提供现场代码文档,其中包括以下内容。但是有很多问题,这使答案变得复杂。我试着在下面介绍它们。

  1. 在字段代码中使用格式字符,例如段落标记 大括号改善布局
  2. 使用带有空结果的字段代码类型(如“SET”)进行插入 文档
  3. 使用字段代码中的隐藏文字插入文档
  4. 删除非绝对的QUOTATION MARK(")个字符 必要
  5. (1)的一个例子:

    如果你有类似的话:

    { IF { MERGEFIELD A } = { bookmarka } "{ MERGEFIELD B }" "{ IF { MERGEFIELD C } = { bookmarkb } "result2" "result3" }" }
    

    然后你可以这样做,而不改变IF字段的结果:

    { IF { MERGEFIELD A } = { bookmarka } 
      "{ MERGEFIELD B }" 
      "{ IF { MERGEFIELD C } = { bookmarkb } 
        "result2" 
        "result3" }" }
    

    单击{ bookmarka }后按Enter键输入正常的Word段落标记,然后在QUOTATION MARK字符前插入一些空格。

    不同的人可能会选择不同的缩进模式和处理结束“}”的方式。这个领域没有标准或广泛使用的传统,例如C代码。

    有一个缺点。每次在字段代码和字段结果视图之间切换时,Word都可能会在一个长文档中重新分页,并且您可能会在代码中“失去位置”。

    (2)的一个示例是,您可以在代码中的许多位置插入{SET}字段(但不是全部),并在“SET variablename”部分之后放置几乎任何文本。或者您可以定义一个名为“REMARK”的书签(“COMMENT”似乎太容易与内置字段代码COMMENTS混淆)

    e.g。

    { SET REMARK I wouldn't use "COMMENT" }
    

    或放

    { SET REMARK "" } 
    

    在代码的开头,然后使用

    { REMARK I wouldn't use "COMMENT" }
    
    { REMARK because it might be confused with the "COMMENTS" field } 
    

    请记住,您不能将字段代码放在字段代码“块”的任何位置,因为在某些地方,Word对字段编码的解释会发生变化。 e.g。

    { IF 1 = 0 { MERGEFIELD X } { MERGEFIELD Y } }
    

    应始终插入{ MERGEFIELD Y }

    的值

    { IF 1 = 1 { MERGEFIELD X }{ REMARK insert X } { MERGEFIELD Y } }
    

    会插入{ REMARK insert X }

    的结果

    您可以使用

    { IF 1 = 1 "{ MERGEFIELD X }{ REMARK insert X }" { MERGEFIELD Y } }
    

    或在这种情况下,

    { IF 1 = 1 { MERGEFIELD X { REMARK insert X } } { MERGEFIELD Y } }
    

    On point(3)Word通常会忽略字段代码中的隐藏文本,因此您可以使用隐藏文本来插入文档。但同样,你必须要小心你把它放在哪里。例如,对于通常标记为隐藏的字段类型(例如TC和XE),此方法无用。就个人而言,我不认为插入文档然后隐藏它的想法是理想的 - 除了其他任何东西,它很容易删除,甚至不知道它在那里。但它可以做到。

    对于第4点,Microsoft Word插入某些字段类型的方式和“字段代码语言”的文档(例如它)意味着存在使用QUOTATION MARK字符包围某些内容的传统。示例通常在IF字段中显示...

    { IF comparand-1 operator comparand-2 "result if true" "result if false" }
    

    在这种特殊情况下,您需要引号,但如果“result if true”或“result if false”是单个单词(就Word而言)或单个字段代码的结果,那么你可以省略引号,例如

    { IF comparand-1 operator comparand-2 true false }
    

    { IF comparand-1 operator comparand-2 { REF bookmarka } { REF bookmarkb } }
    

    就个人而言,我更喜欢使用引号,因为它是许多用户熟悉的模式,如果以某种方式修改字段代码,则无需确定是否需要重新插入配额标记,等等。但这只是我的偏好。在您特别嵌套IF字段的情况下,您通常会将单独的字段代码作为结果,而引号可能不会真正提高清晰度。

    您还必须记住,在某些情况下,您必须使用引号括起字段。例如,如果要确保将两个值作为字符串进行比较,则至少应引用它们。

    例如,假设您有一个可包含任何文本字符串的合并域X,并且您希望将该字符串与“3”进行比较。如果你使用

    { IF { MERGEFIELD X } = 3 True False } 
    

    然后如果X是“1 + 2”,“3”,“4-1”,你将得到一个真实的结果。在这种情况下,你需要

    { IF "{ MERGEFIELD X }" = 3 True False } 
    

    如果“3”被某种变量字段替换,你可能需要

    { IF "{ MERGEFIELD X }" = "{ theVariable }" 3 True False } 
    

    Word在这种情况下评估简单算术表达式的倾向并不是唯一可能出错的事情。如果{MERGEFIELD X}评估您在文档中定义的书签的名称,则Word倾向于取消引用该书签,并使用该书签的值而不是MERGEFIELD字段的值,除非您包围{{1}用引号。