13

我正在尝试向邮件合并字段添加超链接。所以是这样的:

{HYPERLINK "{MERGEFIELD "Links" }"}

所以我创建了一个这样的字段。

{ MERGEFIELD Links }

以上工作(它为不同的收件人显示不同的链接)。

但是,当我转到编辑字段,然后尝试将 HYPERLINK 添加到 { MERGEFIELD Links} 时,Word 将不允许我这样做。这意味着当我输入 HYPERLINK 后跟一个空格时,“变量”字段就消失了。而不是文字显示...

关联

它显示...

   {HYPERLINK "{MERGEFIELD "Links" }"}

即使在我按下“更新字段”之后。因此,出于某种原因,Word 不允许我输入 HYPERLINK。

我该如何解决这个问题?

4

7 回答 7

24

微软网站

  1. Insert菜单上,单击Field(在更高版本的 Office 中的 Quick Parts 下)。
  2. 在字段名称列表中,单击超链接,然后单击确定。文本Error! Hyperlink reference not valid 出现在文档中。
  3. ALT+F9打开{ HYPERLINK \* MERGEFORMAT }域代码。
  4. 将插入点放在后面HYPERLINK,然后添加一个空格。
  5. 在插入菜单上,单击Field。在Field names列表中,单击MergeField。在字段名称文本框中,键入包含超链接的数据源字段的名称,然后单击确定。例如,如果数据源字段的名称为“Address1”,则字段代码如下所示:{ HYPERLINK { MERGEFIELD "Address1" } \* MERGEFORMAT }
  6. 按 ALT+F9 关闭域代码。你现在有Error! Hyperlink reference not valid文字了。
  7. 将插入点放在Error! Hyperlink reference not valid文本中间的任意位置,然后插入要显示的文本。如果您想要一个合并字段,请从菜单上的“插入合并字段”选项中插入它。
  8. Error!在要保留的文本之前和之后删除 ... 的剩余文本。

注意:如果您的合并字段仅包含一个标识符,并且 URL 作为合并文档的静态部分提供,这也可以工作。在第 5 步中,您需要插入 URL 文本以及 MergeField,例如: { HYPERLINK "https://www.myurl.com/EditForm.aspx?ID={ MERGEFIELD ID }" \* MERGEFORMAT }

于 2016-06-10T19:12:32.093 回答
12
于 2013-09-18T18:15:22.713 回答
8

从这里的过程开始:http: //support.microsoft.com/kb/912679 但是,就像 user1867326 指出的那样,当重新打开 Word 文件时,超链接(应该随着邮件合并而变化)被转换为静态链接。

一个似乎可行的解决方案是在合并域之后立即在超链接域代码中添加一个书签。 { HYPERLINK { MERGEFIELD "Link" } \* MERGEFORMAT } 在 } 和 \ 之间单击并转到 INSERT > Bookmark,为其命名,这似乎可以防止 Word 用静态超链接替换合并字段。

此答案已改编并希望从此处描述的巧妙解决方案中得到澄清: Mailmerge dynamic hyperlink fields lost after save/reload of document - Word 2010

于 2013-11-22T16:04:47.530 回答
4

这对我有用的电子邮件邮件合并可变超链接都显示相同的文本。我正在使用 Office 2016 Word。

  1. 将插入点放在您希望链接显示文本在文档中的位置。
  2. 在插入菜单上,单击快速部件,然后选择字段。
  3. 在字段名称列表中,单击超链接,然后单击确定。文字错误!文档中出现超链接引用无效。
  4. 按 ALT+F9 打开 { HYPERLINK * MERGEFORMAT } 域代码。5. 将插入点放在 HYPERLINK 之后。
  5. 在插入菜单上,单击快速部件,然后选择字段。在字段名称列表中,单击 MergeField。
  6. 在字段名称文本框中,键入包含超链接的数据源字段的名称,然后单击确定。例如,如果数据源字段的名称是“Address1”,则字段代码如下所示: { HYPERLINK { MERGEFIELD Address1 } * MERGEFORMAT }
  7. 按 ALT+F9 关闭域代码。你现在有错误!超链接引用无效文本。
  8. 将插入点放在'错误!超链接引用无效文本。并删除除句号外的所有文本。写入链接显示文本。确保不要删除句点(这很重要)。
  9. 要检查超链接是否正在映射,请右键单击链接显示文本,然后单击编辑超链接。您将在每条记录的地址字段中看到正确的链接。
  10. 我喜欢将期间文本颜色设置为白色,这样它看起来不可见。
于 2019-05-21T19:42:31.123 回答
0

要使此方法在 Mac Office 365 (Big Sur) 中工作,您需要了解Toggle Field Codes上下文菜单中的 。上面复制Alt-F9行为的快捷方式将创建一个新字段,而不是允许您编辑存在的字段。

在这些步骤中:

按 ALT+F9 打开 { HYPERLINK * MERGEFORMAT } 域代码。

或者

按 ALT+F9 关闭域代码。你现在有错误!超链接引用无效文本。

代替键盘快捷键,右键单击错误消息并Toggle Field Codes从上下文菜单中选择。

通过此调整,答案对我来说非常有用!谢谢!

于 2021-01-18T19:49:31.720 回答
0

我对其他建议的成功有限 - 基本上,Word 在这方面有问题。有一个简单的替代方案 - 如果您希望超链接发生变化并且显示的文本也发生变化(这不是不合理的要求),那么确实是唯一的替代方案 AKAIK。

请注意,这仅适用于 DOCUMENT MERGES,不适用于 EMAIL MERGES,因为它依赖于处理输出文档。

诀窍是在需要超链接的任何地方添加一个位置标记(用作 ID 的文本)。通过常规合并字段插入此内容。在您的源数据表中,您需要列

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]&""""

到第一行的空白列中,然后填写。

您需要将 [place marker]、[hyperlink] 和 [text_for_display] 修改为适当的单元格引用。

如果 [超链接] 包含查询字符串,您可能会发现您想使用公式构建它,基于源中的其他数据。

然后可以将生成的公式粘贴到宏中并在输出文档上运行。

然后,您可能想要使用“Robbins/Mayor”宏http://www.wordbanter.com/showthread.php?t=18346来拆分生成的文档。

于 2019-11-01T10:50:00.953 回答
0

由于这个线程,我得到了这个工作,但后来它停止工作,我想出了原因,所以我想我会通过在这里发布我发现的内容来表示感谢。

问题是这个词有一种特殊类型的花括号。由于这个原因,从这个线程复制代码文本可能不起作用。为了得到 Word 想要的花括号,我在运行 Catalina 和 Office 365 的 Mac 上使用了 Fn + Command + F9。显然,一些 Mac 用户可能会发现 Command + F9 有效——只需测试即可。我确定 Windows 也有类似的按键设置。我在这篇文章中找到了 Mac 解决方案。

此外,适用于我的语法是: { HYPERLINK { MERGEFIELD "url" } * MERGEFORMAT } 其中 "url" 是我的 Excel 文件中带有链接的列的标签。注意引号的位置。这与此处的其他帖子不同(我尝试了其他组合),但如果语法可能因 Word 版本和操作系统而异,我不会感到惊讶。

于 2020-01-27T00:24:14.003 回答