Word 中的邮件合并不会移动到下一个字段和输入值
Mail Merge in Word Does Not Move to Next Field and Input Value
我是 运行 使用 Word 2013 进行邮件合并的。
我有一个包含 3 个项目的列表 [图。 3],我有一个我写的模板。
该模板具有一些基本格式,并在下面的单独行中显示行项目(每行 1 个)以及计算的总运输(运费)、税前总计、总增值税金额和总计。为了进入下一个订单项,我使用了 NEXT 记录规则。每个行项目都显示在自己的行中,但总运费、税前总计和总计不会填充,除非我手动更新字段[图。 1].我玩过 NEXTIF 规则,我可以让这些字段自动更新,但是我在项目 table 中有 5 行,其他行填充了第一条记录 [图。 2].谁能在这里指出我正确的方向?最终目标是在 table 中包含 1 到 5 records/line 个项目,并在邮件合并期间填充底部字段。
NEXTIF 规则填充如下:{ NEXTIF { MERGEFIELD "Product_Product_ID" } = "True" }
谢谢你
我使用 NEXT 填充 table 的屏幕截图:
使用 NEXTIF 填充 table 的屏幕截图:
数据截图table:
我正在使用 Windows Word 2010 进行测试。其他版本(尤其是 Mac)的行为可能有所不同,因此请告诉我们您使用的是哪个版本。
之前,我假设您正在执行一对多合并(多页数据,但每页最多 5 行)。现在我再次阅读您的文本,我意识到您的数据源可能确实最多有 5 行,并且您正在寻找一种方法来检测不存在的行。假设是这样,那么...
您 "completing the merge" 很重要,即将输出到新文档或其他内容。预览合并只会让您知道将要发生什么,有时可能会产生误导。
要测试不存在,你应该可以测试
{ IF { MERGEFIELD Product_ID } = "" }
正如我在之前的评论中指出的那样。虽然在预览期间可能有时不会显示预期结果,但在您完成合并时它应该会显示预期结果。 (它可能只需要更新字段即可在预览期间正确显示。
我怀疑与不显示总数有关的问题与您计算总数的方式有关。如果您使用 运行 总数而不检查每一行中是否存在某个值,则可能会出错。你的做法显然与我不同,因为我实际上看到了一条错误消息:
!Unexpected end of formula.
如果我通过在页面开头添加以下内容来做到这一点
{ SET Total 0 }
每行计算如下
{ SET Total { =Total+{ MERGEFIELD Extended_Amount } } }
要解决这个问题,我想你需要做一些类似的事情
{ SET Total { =Total+{ IF { MERGEFIELD Extended_Amount } = "" 0 { MERGEFIELD Extended_Amount } } } }
但是,对于该计算,您可以使用完全不同的方法 - select table,插入一个书签,比方说 "datatable",然后使用像
{ =SUM(datatable [F:F]) }
或者如果您希望在输出文档中解析域代码,请使用
{ QUOTE { =SUM(datatable [F:F]) } }
如果您正在进行一对多合并(数据源中超过 5 条记录),则 { NEXT } 字段方法将不起作用。我可以详细说明您需要做什么,但大纲是您必须有一些东西可以告诉您页面数据何时结束,并使用它来抑制不应该存在的行的输出。 (有些人可能认为更简单的替代方法是在每一页的第一行中有一个行数,并有一个 IF 块根据行数插入正确数量的 table 行+内容_。
我是 运行 使用 Word 2013 进行邮件合并的。 我有一个包含 3 个项目的列表 [图。 3],我有一个我写的模板。 该模板具有一些基本格式,并在下面的单独行中显示行项目(每行 1 个)以及计算的总运输(运费)、税前总计、总增值税金额和总计。为了进入下一个订单项,我使用了 NEXT 记录规则。每个行项目都显示在自己的行中,但总运费、税前总计和总计不会填充,除非我手动更新字段[图。 1].我玩过 NEXTIF 规则,我可以让这些字段自动更新,但是我在项目 table 中有 5 行,其他行填充了第一条记录 [图。 2].谁能在这里指出我正确的方向?最终目标是在 table 中包含 1 到 5 records/line 个项目,并在邮件合并期间填充底部字段。
NEXTIF 规则填充如下:{ NEXTIF { MERGEFIELD "Product_Product_ID" } = "True" }
谢谢你
我使用 NEXT 填充 table 的屏幕截图:
使用 NEXTIF 填充 table 的屏幕截图:
数据截图table:
我正在使用 Windows Word 2010 进行测试。其他版本(尤其是 Mac)的行为可能有所不同,因此请告诉我们您使用的是哪个版本。
之前,我假设您正在执行一对多合并(多页数据,但每页最多 5 行)。现在我再次阅读您的文本,我意识到您的数据源可能确实最多有 5 行,并且您正在寻找一种方法来检测不存在的行。假设是这样,那么...
您 "completing the merge" 很重要,即将输出到新文档或其他内容。预览合并只会让您知道将要发生什么,有时可能会产生误导。
要测试不存在,你应该可以测试
{ IF { MERGEFIELD Product_ID } = "" }
正如我在之前的评论中指出的那样。虽然在预览期间可能有时不会显示预期结果,但在您完成合并时它应该会显示预期结果。 (它可能只需要更新字段即可在预览期间正确显示。
我怀疑与不显示总数有关的问题与您计算总数的方式有关。如果您使用 运行 总数而不检查每一行中是否存在某个值,则可能会出错。你的做法显然与我不同,因为我实际上看到了一条错误消息:
!Unexpected end of formula.
如果我通过在页面开头添加以下内容来做到这一点
{ SET Total 0 }
每行计算如下
{ SET Total { =Total+{ MERGEFIELD Extended_Amount } } }
要解决这个问题,我想你需要做一些类似的事情
{ SET Total { =Total+{ IF { MERGEFIELD Extended_Amount } = "" 0 { MERGEFIELD Extended_Amount } } } }
但是,对于该计算,您可以使用完全不同的方法 - select table,插入一个书签,比方说 "datatable",然后使用像
{ =SUM(datatable [F:F]) }
或者如果您希望在输出文档中解析域代码,请使用
{ QUOTE { =SUM(datatable [F:F]) } }
如果您正在进行一对多合并(数据源中超过 5 条记录),则 { NEXT } 字段方法将不起作用。我可以详细说明您需要做什么,但大纲是您必须有一些东西可以告诉您页面数据何时结束,并使用它来抑制不应该存在的行的输出。 (有些人可能认为更简单的替代方法是在每一页的第一行中有一个行数,并有一个 IF 块根据行数插入正确数量的 table 行+内容_。