我正在创建一个邮件合并,为每个学生生成定制报告。Word 文档的内容包含一个条形图,该条形图以从最低可能分数到最高可能分数的单位标记。我可以轻松地将学生姓名和分数放到文档上,从而合并 Excel 电子表格中的数据。但是,我想做的是在分数条上指示学生分数适合的位置。Excel 中的条件格式“数据条”对我有用。我只需将其放在分数条下方,它就会显示学生分数在条形图上适合的位置。
我知道我无法使用邮件合并来合并格式。但是,有没有办法合并格式化单元格的“图片”。换句话说,我不会合并文本,而是从电子表格中挑选一个“图标”并将其放在 Word 文档中的适当位置。谢谢
答案1
您可以尝试以下方法,但有一些附带条件,例如,只有当您能合并到新文档,然后更新所有字段代码时,它才有可能奏效。我在这里没有涵盖所有的困难。
我假设您正在使用 Windows Word。
首先,假设您的数据在“Sheet1”中,第 1 行有一个标准标题行,数据从第 2 行开始,分数在第 5 列,名为“分数”
在 Excel 中打开工作簿
将工作簿设置为合并的数据源
在 Excel 中,选择第一个数据行(第 2 行,第 5 列)中的分数,然后选择“编辑”->“复制”
在 Word 中,使用“粘贴”->“选择性”以图片格式粘贴链接。
在 Word 中,如果按下 Alt-F9,您应该会看到类似这样的字段代码:
{ LINK Excel.Sheet.12 "C:\\mysheets\\databars1.xlsx" "Sheet1!R2C5" \a \p }
选择“R2C5”中的“2”并将其删除,然后......
使用 ctrl-F9 插入一对特殊字段代码括号字符,这样你就有了
{ }
点击里面并再次使用 ctrl-F9,这样你就有了
{ { } }
在内括号内,输入 MERGESEQ,因此您有
{ { MERGESEQ } }
在内括号前输入“=”,在内括号后输入“+1”,这样你就得到了
{ ={ MERGESEQ }+1 }
(有两个字段返回与数据源相关的行号。我不会在这里详细介绍,但在这种情况下,{ MERGESEQ } 相对于 { MERGEREC } 的优势之一是,{ MERGESEQ } 在您实际执行合并之前没有值。
如果您现在使用 Alt-F9 重新显示字段结果,并使用 F9 来更新它,您可能会看到一条错误消息。
现在合并到新文档。同样,您可能需要采取措施避免错误。合并完成后,您可能仍会在结果中看到错误。使用 Alt-F9 - 您应该会看到包含计算字段(如 { =1+1 }、{ =2+1 })的 LINK 字段。
选择整个文档并按 F9 更新所有字段。您应该会看到相关单元格的条形图。然后选择按 shift-F9 取消链接所有字段(这也会取消链接其他内容,因此您可能不想这样做。
Word 的一个问题是,它往往会破坏嵌套在 LINK 字段中的字段,无论是在您更新 LINK 字段结果时,还是在您保存并重新打开文档时。如果您使用 { MERGEREC } 而不是 { MERGESEQ },我确信您会看到这种情况。为了防止这种情况,在保存之前更改 LINK 字段以使其不再是 LINK 字段,然后在重新打开时将其更改回来可能会有所帮助。例如更改
{ LINK ... }
到
{ XLINK ... }
显然,目前为止,整个过程已经有足够的步骤和难度,很难交给另一个用户,但这是我知道的唯一可行的方法。否则,你要么必须
- 从 Excel 复制图片(如果图片数量有限 - 如果有数百个不同的值,我认为这不太实际)并使用类似 IF 字段的东西为每个值插入相关图片。这显然会反映您创建图像时的格式选择,而不是合并时在工作表中的格式选择(例如,如果您想更改条形颜色怎么办?)或
- 使用 VBA 和 Word 的 MailMerge 事件(或者后期处理,如果您要输出到新文档)来获取每一行的正确图像。