当前位置:首页 > 办公设计 > Office教程 > 写一句VBA代码,让Excel自动发邮件~

写一句VBA代码,让Excel自动发邮件~

1年前 (2025-05-24)Office教程1400

嗨,大家好,我是星光。
今天给大家聊一下如何用Excel自动发邮件。

坦白说,这事其实只需要一句VBA代码。
比如,我要给邮箱”Excel@qq.com”发一封邮件,标题是”你好啊看见星光”,同时将当前工作簿作为附件一起发过去?

Sub SendMail_1()
ActiveWorkbook.SendMail "Excel@qq.com", "你好啊看见星光"
End Sub

你看,是不是只需要一句代码?
代码使用了SendMail,这是工作簿对象的方法,语法格式如下:
工作簿.SendMail(收件人,主题,是否返回收件人)
就仨参数,第3参数还可以省略,只需要提供收件人和主题就可以了。不过需要注意的是它会将工作簿作为附件发送给收件人。

 

▎收件人是多人

有朋友可能会问,如果收件人是多人怎么办呢?
将收件人地址修改为一维数组即可。

示例代码如下:

Sub SendMail2() '发送多人
Dim aName, strTit As String
aName = Array("Excel@qq.com", "469772827@qq.com")
strTit = "你好啊看见星光"
ThisWorkbook.SendMail aName, strTit
End Sub

第3行代码指定了两个收件人。

 

▎发送部分工作表

上面的两段代码都是将整个工作簿作为附件发送出去,如果有朋友只需要发送工作簿中的部分工作表,可以参考以下代码。
以下代码将代码所在工作簿中两个名为”看见星光”和”老祝”的工作表,组合成一个新工作簿,作为附件发送给多个收件人:

Sub SendMail3() '将指定工作表转换为工作簿发送
Dim aName, aShtName, strTit As String
aName = Array("Excel@qq.com", "测试@qq.com")
strTit = "你好,这是测试邮件"
aShtName = Array("看见星光", "老祝")
Worksheets(aShtName).Copy
ActiveWorkbook.SendMail aName, strTit
ActiveWorkbook.Close False
End Sub

第5行代码指定了两个工作表名称,第6行代码使用工作表对象的Copy方法,将指定工作表集合转换为单独工作簿。
第7行代码发送邮件,第8行代码关闭并不保存当前工作簿。

 

▎发送指定工作簿

我先说一句大实话,在我眼里,看到这里的朋友都是靓仔美女。摊手,那再提一个新问题,上述代码是将代码所在工作簿作为附件发送,如果是将发送指定工作簿作为附件怎么办呢?

以下代码可以将当前工作簿同路径下的一个名为”测试”的工作簿,作为附件,发送指定收件人。

Sub SendMail4() '发送指定路径下工作簿
Dim aName, strPath As String, wk As Workbook, strTit As String
aName = Array("Excel@qq.com", "测试@qq.com")
strTit = "你好,这是测试邮件"
strPath = ThisWorkbook.Path & "/测试.xlsx"
Set wk = Workbooks.Open(strPath)
ActiveWorkbook.SendMail aName, strTit
ActiveWorkbook.Close False
End Sub

第5行代码指定了目标工作簿的完整路径。第6行代码使用工作簿的Open方法打开该工作簿。
第7行代码发送邮件,操作对象是ActiveWorkbook,即当前活动工作簿。第8行代码关闭并不保存当前工作簿。

……

最后,我再说一句大实话,使用以上代码时务必先打开并登陆Outlook邮箱,不然你凭啥发邮件图片就凭身材好结实?脸蛋美嘟嘟?家里有钱不够花?——那不成呀。

扫描二维码推送至手机访问。

欢迎转载或分享本篇文章。

本文链接:https://www.jcba123.com/article/1549

分享给朋友:

“写一句VBA代码,让Excel自动发邮件~” 的相关文章

Word文档制作合同,这几个高效技巧一定要掌握!

Word文档制作合同,这几个高效技巧一定要掌握!

今天,易老师来给大家分享几个,使用Word制作合同过程中好用的技巧。相信看完以后,你会有所收获。   1、制表位搞定开头下划线 如下图所示:我们可以利用制表位,快速的给合同开头信息添加下划线。   选中需要添加下划线的内容,然后双击点击“标尺”...

Excel数据在同一单元格中该如何运算公式求和?

Excel数据在同一单元格中该如何运算公式求和?

在一些表格中我们需要将所有的数据都录入到一个单元格中运算公式,而一般的公式都是在不同单元格运算的,这种情况我们应该如何运算呢?这里小汪老师就给大家分享几种常用的方法。   1、自定义名称 首先,进入「公式」-「定义的名称」-「定义名称」,在名称中随便输入一个名字,这里我就输入「求...

不用PS,PPT也能制作撕裂文字效果

不用PS,PPT也能制作撕裂文字效果

在以前撕裂文字只有在PS之类的图片处理软件中才能够实现,但是随着PPT的更新升级,出现了许多好用的功能,很多只能在PS中实现的效果,我们PPT一样能够完成。 输入文字 步骤一:首先,我们得输入文字,在做撕裂文字效果的时候,我建议大家一个字一个字的做,不要一回输入多个字。点击【插入】选项卡,...

Excel算年龄,这些公式会不会?

Excel算年龄,这些公式会不会?

如下图所示,希望根据B列的出生日期和C列的统计截至日期,来计算两个日期之间的间隔,希望得到的结果是xx年xx个月xx天的形式。 要计算两个日期之间的间隔,那就非DATEDIF函数莫属了。这个函数的写法为: =DATEDIF(开始日期,结束日期,返回的间隔类型) 第1参数和第2参数,可以引...

PPT如何制作抖音故障风海报

PPT如何制作抖音故障风海报

首先,在站长素材网站(https://sc.chinaz.com/)搜索并下载一张喜欢的图片。我选择了一张黄昏人物剪影图片作为素材。 第一步:打开PPT软件,创建一个新的空白演示文稿。插入一个矩形形状,选中矩形并右键单击,选择"设置图片格式"选项。在打开的窗格中,找到"形状选项"下的"...

PPT如何制作文字镂空效果

PPT如何制作文字镂空效果

首先,在站长素材网站(https://sc.chinaz.com/)搜索并下载一张喜欢的图片。 第一步:打开PPT软件,创建一个新的空白演示文稿。然后,在幻灯片上插入刚刚下载的图片,并将其置于底层。 第二步:插入一个与页面大小相同的矩形,将其填充为黑色,并调整矩形的透明度...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。