Excel自动发邮件设置教程
时间:2026-01-19 11:05:35 482浏览 收藏
一分耕耘,一分收获!既然打开了这篇文章《Excel根据单元格内容自动发邮件教程》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!
需用VBA编写Worksheet_Change事件监听D2单元格,匹配“发送邮件”后调用Outlook发送邮件,须启用开发工具、信任宏、安装配置Outlook并保存为.xlsm格式。

如果希望在Excel中根据特定单元格内容变化自动触发Outlook发送邮件,需借助VBA编写事件驱动代码。以下是实现该功能的具体步骤:
一、启用开发者选项并插入VBA模块
Excel默认不显示“开发工具”选项卡,需先手动启用,才能访问VBA编辑器并编写自动化脚本。启用后可创建工作簿级事件响应逻辑。
1、点击“文件”→“选项”→“自定义功能区”→勾选“开发工具”→点击“确定”。
2、在“开发工具”选项卡中,点击“Visual Basic”打开VBA编辑器。
3、在左侧工程资源管理器中,双击对应工作表(如Sheet1),进入该工作表的代码窗口。
4、将后续事件代码粘贴至该窗口,确保使用Worksheet_Change事件而非普通模块中的Sub过程。
二、编写Worksheet_Change事件代码监听单元格
该事件会在用户修改单元格后立即触发,适合用于检测指定区域(如D2)是否输入了预设关键词(如“发送邮件”),从而启动邮件发送流程。
1、在工作表代码窗口中,输入以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("D2")) Is Nothing Then
If Target.Value = "发送邮件" Then
Call SendEmailViaOutlook
End If
End If
End Sub
2、在同一个VBA编辑器中,右键工程资源管理器→“插入”→“模块”,新建标准模块。
3、在新模块中粘贴SendEmailViaOutlook子过程,包含邮件主题、收件人、正文等基础字段定义。
三、配置Outlook邮件发送子过程
该子过程调用Outlook Application对象创建并发送邮件,要求本地已安装并配置好Microsoft Outlook客户端,且账户已登录。
1、在标准模块中输入以下代码:
Sub SendEmailViaOutlook()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = "example@company.com"
.CC = ""
.BCC = ""
.Subject = "来自Excel的自动通知"
.Body = "检测到单元格D2被标记为发送邮件,请查收。" & vbCrLf & vbCrLf & "当前时间:" & Now
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
2、将.To行中的邮箱地址替换为实际收件人地址,确保格式为纯文本邮箱字符串。
3、保存工作簿为启用宏的格式(.xlsm),否则VBA代码无法运行。
四、设置信任中心启用宏和自动化权限
Excel默认禁用所有宏及外部应用调用,必须手动调整安全设置,否则Worksheet_Change不会执行,Outlook对象也无法创建。
1、点击“文件”→“选项”→“信任中心”→“信任中心设置”→“宏设置”。
2、选择“启用所有宏(不推荐;可能会运行有潜在危险的代码)”或“启用VBA宏,但提示用户”。
3、返回“信任中心设置”→“受信任位置”,点击“添加新位置”,将当前工作簿所在文件夹设为受信任位置。
4、再次点击“受信任位置”→勾选“子文件夹也受信任”→点击“确定”。
五、测试触发条件与调试错误
触发行为依赖于精确匹配目标单元格内容,任何空格、大小写差异或不可见字符都会导致事件失效,需通过MsgBox或Debug.Print验证执行路径。
1、在Worksheet_Change事件中Target.Value判断前插入:
MsgBox "检测到变更:单元格" & Target.Address & ",值为:" & Target.Value
2、在SendEmailViaOutlook开头插入:
MsgBox "正在尝试连接Outlook..."
3、若出现“运行时错误429:ActiveX组件不能创建对象”,说明Outlook未运行或未正确安装,需手动启动Outlook并登录账户。
4、若邮件未发出但无报错,检查Outlook的安全设置——可能弹出权限提示被后台隐藏,需在任务栏右下角查找Outlook图标并确认授权。
本篇关于《Excel自动发邮件设置教程》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于文章的相关知识,请关注golang学习网公众号!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
108 收藏
-
210 收藏
-
184 收藏
-
464 收藏
-
491 收藏
-
383 收藏
-
295 收藏
-
295 收藏
-
227 收藏
-
233 收藏
-
430 收藏
-
420 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习