我正在尝试向邮件合并字段添加超链接。所以像这样:
{HYPERLINK "{MERGEFIELD "Links" }"}
所以我创建了一个这样的字段。
{ MERGEFIELD Links }
以上工作(它为不同的收件人显示不同的链接)。
但是,当我进入编辑字段,然后尝试将HYPERLINK添加到{MERGEFIELD链接}时,Word将不允许我。这意味着当我输入HYPERLINK后跟一个空格时,“变量”字段就消失了。而不是显示单词...
LINK
显示......
{HYPERLINK "{MERGEFIELD "Links" }"}
即使我按下“更新字段”。因此Word不会让我因某种原因进入HYPERLINK。
我该如何解决这个问题?
答案 0 :(得分:15)
Insert
菜单上,点击Field
(在以后的办公室版本的快速部件下)。Error! Hyperlink reference not valid
出现在文件中。 ALT+F9
打开{ HYPERLINK \* MERGEFORMAT }
域代码。 HYPERLINK
之后,然后添加一个空格。 Field
。在Field names
列表中,点击MergeField
。在“字段名称”文本框中,键入包含超链接的数据源字段的名称,然后单击“确定”。例如,如果数据源字段的名称是" Address1,"字段代码如下所示:{ HYPERLINK { MERGEFIELD "Address1" } \* MERGEFORMAT }
Error! Hyperlink reference not valid
文字。Error! Hyperlink reference not valid
文本中间的任意位置,然后插入要显示的文本。如果您想要合并字段,请从"插入合并字段"中插入。菜单上的选项。Error!
...的剩余文字。 注意:如果您的合并字段只包含一个标识符,并且该URL可以作为合并文档的静态部分提供,那么这也可以。在步骤5中,您需要插入URL文本以及MergeField,例如:
{ HYPERLINK "https://www.myurl.com/EditForm.aspx?ID={ MERGEFIELD ID }" \* MERGEFORMAT }
答案 1 :(得分:6)
我也一直在努力解决这个问题。我发现关键是从SCRATCH创建文档而不是在执行邮件合并之前保存它。以下是我使用的步骤:
“”
,然后在它们之间插入合并后的字段,以便{HYPERLINK \* MERGEFORMAT}
- >变为{HYPERLINK"{MERGEFIELD"Constructed_URL"}"\*MERGEFORMAT}
希望这会有所帮助并祝你好运!
答案 2 :(得分:5)
从这里开始: http://support.microsoft.com/kb/912679 但是,与user1867326指示的一样,当重新打开Word文件时,超链接(应该随邮件合并而变化)将转换为静态链接。
似乎有效的解决方案是在合并域之后立即在超链接字段代码中添加书签。
{ HYPERLINK { MERGEFIELD "Link" } \* MERGEFORMAT }
在}和\之间单击,然后转到INSERT>书签,给它起一个名字,这似乎阻止Word用静态超链接替换合并域。
这个答案经过调整,并希望从这里描述的聪明解决方案中得到澄清: Mailmerge dynamic hyperlink fields lost after save/reload of document - Word 2010
答案 3 :(得分:0)
这对我来说很有效,因为它合并了带有所有显示相同文本的可变超链接的电子邮件。我正在使用Office 2016 Word。
答案 4 :(得分:0)
我在其他建议上的成功有限-基本上,Word在这方面是错误的。有一个简单的替代方法-实际上是唯一的替代方法,如果您想更改超链接并且显示的文本也有所不同(不是不合理的要求)。
请注意,这仅适用于DOCUMENT MERGES,不适用于EMAIL MERGES,因为它依赖于处理输出文档。
技巧是在需要超链接的任何地方添加位置标记(用作ID的文本)。通过常规的mergefield插入。在源数据表中,您需要列
place marker, text_for_display, hyperlink
然后,您需要将源数据放到Excel中(如果还不存在的话)并放这个公式
="Set Rng = ActiveDocument.Content: Rng.Find.Execute FindText:="""&[place marker]&""": ActiveDocument.Hyperlinks.Add Anchor:=Rng, Address:="""&[hyperlink]&""", TextToDisplay:="""&[text_for_display]&""""
插入第一行的空白列,然后填写。
您需要将[位置标记],[超链接]和[text_for_display]修改为适当的单元格引用。
如果[超链接]包含查询字符串,您可能会发现要基于源中的其他数据使用公式来构建它。
然后可以将所得公式粘贴到宏中并在输出文档上运行。
然后,您可能想使用“ Robbins / Mayor”宏http://www.wordbanter.com/showthread.php?t=18346来拆分生成的文档。
答案 5 :(得分:0)
多亏了该线程,我才开始工作,但是后来它停止工作了,我弄清楚了为什么,所以我想通过在这里发表我发现的内容表示感谢。
问题在于该单词具有特殊类型的花括号。由于这个原因,可能无法从该线程复制代码文本。为了得到Word想要的花括号,我在运行Catalina和Office 365的Mac上使用了Fn + Command + F9。显然,某些Mac用户可能会发现Command + F9可以正常工作-进行测试以找出答案。我确定Windows具有类似的按键设置。我在this post中找到了Mac解决方案。
另外,对我有用的语法是:{HYPERLINK {MERGEFIELD“ url”} * MERGEFORMAT}其中,“ url”是带有Excel文件中链接的列的标签。注意引号的位置。这与此处的其他文章不同(我尝试了其他组合),但是如果语法在Word版本和操作系统之间可能有所不同,我也不会感到惊讶。
答案 6 :(得分:0)
要在 Mac Office 365 (Big Sur) 中使用此方法,您需要了解上下文菜单中的 Toggle Field Codes
。上面复制 Alt-F9
行为的快捷方式将创建一个新字段,而不是允许您编辑现有字段。
在这些步骤中:
<块引用>按 ALT+F9 打开 { HYPERLINK * MERGEFORMAT } 域代码。
或
<块引用>按 ALT+F9 关闭域代码。你现在有错误!超链接引用无效文本。
右键单击错误消息并从上下文菜单中选择 Toggle Field Codes
,而不是键盘快捷键。
这个调整对我来说很好!谢谢!