通邮件合并实现多行数据合并到一个模板
应朋友之请,要帮她实现一个邮件合并的应用场景。本来,邮件合并是个挺简单的事。但是她的要求却远远超出我对邮件合并的认知。要求是这样的:相同系列的不同产品要放在同一张质量保证书上。每种系列下不超过3个规格。不同系列要分开做质量保证书。WORD的邮件合并对于处理连续单行的数据比较容易,但是对于这种要按某个字段分开处理不太容易。这就是所谓的多行数据合并到一个模板中的问题。 网上搜索了很多教程,看的迷迷糊糊,没有一个真的看懂了。经过一个晚上的反复摸索。总算有了眉目,现将过程记录下来,以防遗忘。 EXCEL文件清单内容如下图。最右列的计数项是添加的辅助列,公式为=if(l2=l3,1,0),也就是判断本行的编号和下一行的编号是否一致。这个非常重要,因为后面的拆分要依靠此列的数据指引。 最终的效果如下图 最终实现域代码如图 下面是具体的操作步骤: 注意:本文中所要求输入的内容中,除了中文外,其他内容均要求在英文半角状态下输入。 先新建一空白WORD文档,然后插入一个多列(根据需求)3行(因为最多只有3个型号,当然,实际使用过程中应该是增加表头行的)的空白表格。然后在“邮件”选项卡中点击“选择收件人”,然后选择“使用现有列表”,找到你保存的EXCEL源文件。打开后,进入正常的邮件合并界面。这一步不多说,因为就是普通的邮件合并步骤,网上教程也很多。 在域代码图所示的第一个空白单元格中,按照常规的邮件合并方法,插入编号字段和规格字段。到这一步为止,所有步骤和普通邮件合并没有任何区别。区别在接下来的步骤中。 在第二行第一个空白单元格中,先按下ALT+F9,然后按CTRL+F9,出现一对大括号{},但这个大括号一定是要通过组合键出来,手工输入是无效的。在大括号中输入set a "" ,a可以自己指定其他的名称。在set a “”这三者之间都要有空格。然后将光标定位到“”中间,在菜单中选择“插入合并域”,在列表中选择“计数”字段。这样就会得到{ set a "{MERGEFIELD 计数}"}这样的代码。 接着,在邮件选项卡下的‘规则’下拉列表中选择“下一条 记录”,如下图 在接下来的对话框 中,域名栏中选择“计数”,比较...