如何从 Excel 发送带有超链接的电子邮件?
在许多工作场景中,您可能需要直接从 Excel 发送电子邮件,并且在某些情况下,您希望在邮件正文中包含可点击的超链接。例如,您可能希望收件人能够直接通过邮件访问文件、访问网站或打开其他相关文档。您可以通过多种实用方法在 Excel 中实现这一点,包括 VBA 自动化、Excel 内置的超链接功能以及使用公式。每种方法都有其独特的优势,适用于不同的使用场景——无论是自动化、手动定制还是基于电子表格生成链接。本指南将介绍几种在从 Excel 发送的邮件正文中插入超链接的方法,并讨论每种方法的应用价值和注意事项。
使用 VBA 代码将超链接插入邮件正文
此方法专为需要发送带有直接嵌入消息正文中的超链接的邮件用户设计,利用 Outlook 作为发送客户端。利用 VBA,您可以自动从 Excel 中撰写并自定义邮件,在正文中嵌入任何所需的超链接或格式化文本。这对于批量发送、工作流自动化或需要从工作表中包含模板文本和动态值的情况特别有用。
1. 打开您的工作簿,然后按 Alt + F11 键打开 Microsoft Visual Basic for Applications 窗口。
2. 在 Visual Basic 编辑器中,转到 插入 > 模块,并将以下 VBA 代码粘贴到模块编辑器中。
VBA 代码:将超链接插入邮件正文
Sub EmailHyperlink()
'updated by Extendoffice 20190815
Dim xOtl As Object
Dim xOtlMail As Object
Dim xStrBody As String
xStrBody = "Hi there:" & "<br>" _
& "Please click " & "<a href="/ & "http://www.extendoffice.com"">Here</a> to open the page" & "<br>" _
& "Thank you."
On Error Resume Next
Set xOtl = CreateObject("Outlook.Application")
Set xOtlMail = xOtl.CreateItem(olMailItem)
With xOtlMail
.To = "Email Address"
.CC = "Email Address "
.BCC = " Email Address "
.Subject = "Subject line"
.HTMLBody = .HTMLBody & xStrBody
.Display
End With
Set xOtl = Nothing
Set xOtlMail = Nothing
End Sub
注意事项:
- 根据您的需求编辑 xStrBody 行中的超链接和正文文本。这里使用了 HTML
<a href="/"></a>
标签——请记住验证您的链接和可见文本。 - 将 .To、.CC 和 .BCC 字段中的“电子邮件地址”替换为实际的收件人电子邮件地址。如果不需要,可以省略 CC/BCC 字段(通过删除或注释掉相应行)。
- 更新 .Subject 行中的“主题行”,以反映您预期的邮件主题。
- 确保在运行此宏之前已安装并可访问 Microsoft Outlook。
3. 编辑完代码后,按 F5 运行它。Outlook 中会弹出一个新邮件窗口,其中预填了指定字段,并且正文嵌入了您的超链接。检查消息后,点击 发送 即可发送邮件。
提示:如果在 Outlook 中遇到安全提示,请确认您有权通过代码发送邮件,并且您的宏安全设置允许执行。为了获得最佳效果,始终先用样本消息进行测试,然后再自动化发送给更大的受众。
优点: 支持可定制、带格式的 HTML 邮件,并嵌入超链接和自动化发送。对于重复性或批量消息,自动化可以节省大量时间。
缺点: 需要 Outlook 并可能需要调整宏安全设置。不熟悉 VBA 的用户并不理想。
使用 Excel 的 HYPERLINK 公式生成 mailto 超链接
这种方法使用 Excel 的 HYPERLINK 函数在工作表中创建可点击的链接。单击这些链接会启动默认的电子邮件客户端(如 Outlook 或 Mail)来撰写一封预填好的邮件。使用此方法,您可以预先定义收件人、主题、正文内容甚至附加链接,为消息创建提供快速启动——尽管发送仍然需要用户的手动干预。
如果您想为他人提供模板链接使用,或者无需自动化即可简化重复性电子邮件任务,这将非常合适。您可以结合此方法与工作表数据,为不同用户创建动态电子邮件模板。
1. 选择要放置 mailto 超链接的单元格,例如 B2。
=HYPERLINK("mailto:someone@example.com?subject=Test Subject&body=Please review this link: https://www.example.com","Send Email")
2. 输入公式后,按 Enter 键会将单元格变成可点击的链接。单击该链接将打开您的默认邮件应用程序,并根据公式内容填写 To、Subject 和 Body 字段。您还可以通过单元格引用进一步调整公式,以生成动态消息。
- 例如,使用 A2 中的值作为收件人,B2 中的值作为链接:
=HYPERLINK("mailto:"&A2&"?subject=Hello&body=Please visit: "&B2, "Email User")
优点: 易于实现,无需编程,并支持动态内容。适用于数据集或一次性生成多个链接时灵活高效。
缺点: 无法自动发送——用户仍需手动检查并提交每封电子邮件。邮件正文长度受 mailto 协议限制;较长或带格式的正文可能会被截断或显示不佳。

使用 Kutools AI 解锁 Excel 魔法
- 智能执行:执行单元格操作、分析数据和创建图表——所有这些都由简单命令驱动。
- 自定义公式:生成量身定制的公式,优化您的工作流程。
- VBA 编码:轻松编写和实现 VBA 代码。
- 公式解释:轻松理解复杂公式。
- 文本翻译:打破电子表格中的语言障碍。
相关内容
基于 Excel 中的单元格值自动发送电子邮件
假设您想通过 Outlook 根据 Excel 中的特定单元格值向某个收件人发送电子邮件。例如,当工作表中 D7 单元格的值大于 200 时,则自动创建电子邮件。本文介绍了使用 VBA 方法快速解决这一问题的方式。
在 Excel 中单击按钮时发送电子邮件
假设您需要通过单击 Excel 工作表中的按钮通过 Outlook 发送电子邮件,该如何操作?本文将详细介绍一种使用 VBA 方法实现的方式。
在 Excel 中满足截止日期时发送电子邮件
假设列 C 中的截止日期小于或等于 7 天(当前日期为 2017/9/13),则向列 A 中的指定收件人发送电子邮件提醒,并附上列 B 中的指定内容。如何实现这一点?本文中的方法可以帮助您完成这项任务。
最佳Office办公效率工具
🤖 | Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数…… |
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入…… | |
高级LOOKUP:多条件VLookup|多值VLookup|多表查找|模糊查找…… | |
高级下拉列表:快速创建下拉列表 |依赖下拉列表 | 多选下拉列表…… | |
列管理器: 添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列…… | |
特色功能:网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)…… | |
15大工具集:12项 文本工具(添加文本、删除特定字符等)|50+种 图表 类型(甘特图等)|40+实用 公式(基于生日计算年龄等)|19项 插入工具(插入二维码、从路径插入图片等)|12项 转换工具(小写金额转大写、汇率转换等)|7项 合并与分割工具(高级合并行、分割单元格等)| …… |
通过Kutools for Excel提升您的Excel技能,体验前所未有的高效办公。 Kutools for Excel提供300多项高级功能,助您提升效率并节省时间。 点击此处获取您最需要的功能……
Office Tab为Office带来多标签界面,让您的工作更加轻松
- 支持在Word、Excel、PowerPoint中进行多标签编辑与阅读。
- 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
- 可提升50%的工作效率,每天为您减少数百次鼠标点击!
所有Kutools加载项,一键安装
Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。





- 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
- 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
- 协同更高效——提升Office应用间的整体工作效率
- 30天全功能试用——无需注册,无需信用卡
- 超高性价比——比单独购买更实惠