我需要使用 MS Word 创建信件。我们需要在每封信件上添加一个代码,该代码使用邮件合并功能放在信件上。有些信件需要比其他信件打印得更频繁。我需要找到一种方法,让某些信件比其他信件更频繁地创建,而不会重复 Excel 中的行数。我们在列表中有一列,其中包含需要打印信件的次数,但我不知道如何在邮件合并中使用这些数据。
列:
A: Amount (amount of times the letter needs to be printed)
B: Code 1
C: Code 2
文件示例可以在这里找到。
有人知道怎样让它工作吗?
答案1
在 Excel 中准备好工作表并将其与 Word 邮件合并链接(启动邮件合并)后,使用编辑收件人并使用过滤器选择金额等于写入次数,它将仅显示具有相应金额的记录,您可以将其发送以进行打印
答案2
“无需在 Excel 中复制行”
只要最大重复次数合理地较小,一种方法就是进行两步合并。假设“数量”可以是 1、2 或 3。
在第一步中你有一个目录邮件合并主文档,如下所示:
{ IF { MERGESEQ } = 1 "Code1,Code2" }
{ IF { MERGEFIELD Amount } > 0 "{ MERGEFIELD Code1 },{ MERGEFIELD Code2 }" }
{ IF { MERGEFIELD Amount } > 1 "{ MERGEFIELD Code1 },{ MERGEFIELD Code2 }" }
{ IF { MERGEFIELD Amount } > 2 "{ MERGEFIELD Code1 },{ MERGEFIELD Code2 }" }
将其合并到输出文档中,您将获得一个新的 .docx,其中包含所需数据的正确副本数。将其用作步骤 2 的数据源。
(如果您的数据实际上比您建议的更复杂,那么您可能需要处理数据字段包含逗号的可能性)。
还有一种可能的“两步”方法可能如果您使用 Windows Word,则是可行的,具体取决于您的 Excel 工作表包含多少行以及“金额”可以有多大。
答案3
您要求按照辅助列中指定的迭代次数循环一个唯一记录。
使用标准的 word/excel 设置这是不可能的。
Word 邮件合并有if..then..else
规则,但then/else
字段仅限于文本。{}
字段名称无法识别。此外,语句if
与常量进行比较,而不是与辅助列中的变量值进行比较。
最简单的方法是根据需要重复 Excel 列表中的行。否则,具有 VBA 技能的人可能会解释这种循环是否可以通过 VBA 帮助实现。