在 Microsoft Word 中以 HTML 格式对电子邮件执行邮件合并时,数据源字段中的超链接显示为纯文本且处于非活动状态。 本文介绍解决此问题的两种方法。
方法 1:在邮件合并字段周围添加超链接字段
在邮件合并字段周围添加超链接字段,以在合并的电子邮件中生成超链接。 执行这些步骤后,超链接将在所有电子邮件中显示相同的文本。 此外,超链接会连接到正确的数据源 URL。
为此,请按照下列步骤操作:
-
启动 Word 并打开要合并到电子邮件的文档。
-
在功能区的“邮件 ”选项卡上,选择“ 启动 邮件合并”。 选择 “分步邮件合并向导...” 邮件合并向导显示在右侧。
-
在 “选择文档类型”下,选择“电子邮件”,然后选择“下一步”。
-
在 “选择起始文档”下,选择“使用当前文档”,然后选择“下一步”。
-
在 “选择收件人”下,选择要使用的收件人,然后选择“下一步”。
-
将插入点放在希望超链接显示在电子邮件中的位置。
-
在“插入功能区”选项卡的“文本”部分的“快速部件”菜单中,选择“字段”。
-
在 “字段名称 ”列表中,选择“超链接”,然后选择“确定”。 文本“Error! 超链接引用无效“显示在文档中。
-
按 Alt+F9 打开 { HYPERLINK \* MERGEFORMAT } 字段代码。
-
将插入点放在 HYPERLINK 之后,然后添加一个空格。
-
在“插入功能区”选项卡的“文本”部分的“快速部件”菜单中,选择“插入合并字段”。
-
在 “字段名称” 列表中,选择“合并字段”。
-
在 “字段名称 ”文本框中,键入包含超链接的数据源字段的名称,然后选择“确定”。 例如,如果数据源字段的名称为“Address1”,则字段代码如下所示:
{ HYPERLINK { MERGEFIELD “Address1” } \* MERGEFORMAT }
-
按 Alt+F9 关闭 { HYPERLINK { MERGEFIELD “<字段名称>” } \* MERGEFORMAT } 字段代码。
-
将插入点放在“错误! 超链接引用无效“文本,并使用要显示的超链接文本覆盖文本。 例如,使用“单击此处”等文本覆盖文本。
重要: 请确保不要删除整个字段。
-
选择在步骤 15 中键入的文本。 在功能区“开始”选项卡的“样式”部分的右下角的“披露”按钮上选择,然后选择“超链接”。
-
在“邮件合并向导”中,选择“下一步”,然后按照邮件合并向导中的剩余步骤完成邮件合并过程。
方法 2:创建动态修改超链接文本的宏
Microsoft 提供编程示例仅供说明,不提供明示或默示担保。 这包括但不限于适销性或针对特定用途的适用性的默示保证。 本文假定你熟悉所演示的编程语言以及用于创建和调试过程的工具。
Microsoft 支持工程师可以帮助解释特定过程的功能,但他们不会修改这些示例以提供附加的功能或构造过程来满足你的特定要求。 如果要动态修改合并的电子邮件中的超链接文本,请创建宏。
执行这些步骤后,超链接将显示基于数据源中的 URL 的文本。 为此,请按照下列步骤操作:
-
按照“方法 1:在邮件合并字段周围添加超链接字段”中的步骤操作。
-
在“ 工具 ”菜单上,指向“ 宏”,然后选择“Visual Basic 编辑器”。
-
按 F7。 此时将显示代码窗口。
-
将以下代码复制并粘贴到代码窗口中:
Sub MergeToEmail() Dim bDone As Boolean bDone = False Do While bDone = False ActiveDocument.Fields.Update For Each oHyperlink In ActiveDocument.Hyperlinks oHyperlink.TextToDisplay = oHyperlink.Address oHyperlink.Range.Font.Color = wdColorBlue oHyperlink.Range.Font.Underline = wdUnderlineSingle oHyperlink.Range.Font.UnderlineColor = wdColorBlue Next oHyperlink With ActiveDocument.MailMerge .Destination = wdSendToEmail .SuppressBlankLines = True ' You can modify the text "Enter Your Subject Here" or ' remove the following line if you do not want a subject ActiveDocument.MailMerge.MailSubject = "Enter Your Subject Here" With .DataSource .FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord .LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord End With .Execute Pause:=False End With If ActiveDocument.MailMerge.DataSource.ActiveRecord = _ ActiveDocument.MailMerge.DataSource.RecordCount Then bDone = True End If ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord Loop End Sub
-
在“ 工具 ”菜单上,指向“ 宏”,然后选择“宏”。
-
选择“MergeToEmail”,然后选择“运行”。
注意: 对于使用此宏发送的每封电子邮件,将显示来自 Microsoft Outlook 的警告消息。
警告: Microsoft 已确认这是“适用于”部分中列出的 Microsoft 产品中的 bug。
更多信息
有关如何使用邮件合并功能创建电子邮件的详细信息,请转到:如何使用邮件合并在 Word 2002 中创建电子邮件。
有关如何获取Visual Basic for Applications帮助的详细信息,请转到:
305326 Visual Basic for Applications的编程资源列表