专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

Excel中批量发送邮件

来源:小易整编  作者:小易  发布时间:2023-09-06 03:16
摘要:在日常工作中,经常会遇到需要群发邮件的情况,正常情况下只有一个个手工写邮件,然后发送。这样的工作效率可想而知。下面就介绍一个通过群发邮件的VBA程序。操作方法01一、数据准备准备如下图的数据表,包括...

在日常工作中,经常会遇到需要群发邮件的情况,正常情况下只有一个个手工写邮件,然后发送。这样的工作效率可想而知。下面就介绍一个通过群发邮件的VBA程序。

Excel中批量发送邮件

操作方法 01

一、数据准备 准备如下图的数据表,包括以下内容: 1) 第一列为“邮件地址”,必须是完整的带后缀的邮件地址。 2) 第二列为“邮件主题”,不同的收件人可以根据需要写不同的主题。 3) 第三列为“邮件内容”,不同的收件人可以根据需要写不同的内容。这里的内容在发送时是以纯文本格式发送的,在单元格里设置的格式均无效。 4) 第四列为“邮件附件”,附件必须带有完整的路径,且必须包括文件扩展名。 5) 第五列为“邮件签名”,签名必须带有完整的路径,且必须包括文件扩展名。这里的邮件签名是自动提取使用者邮箱里设置的签名,如果没有设置签名,那么将为空。

02

二、插入按钮 1、点击“开发者工具”页面,选择“插入”中的“控件工具”。然后选择“命令按钮”,如下图所示:

03

2、画出按钮 在表格下面空白处画出“命令按钮”。这时候该按钮默认为编辑状态,按钮四周也有编辑框。如下图所示:

04

三、输入代码 1、双击可编辑状态的“命令按钮”,便进入VBA代码编辑器。

05

2、复制以下代码到VBA编辑器中。替换掉编辑器里原有的两行内容。 Private Sub CommandButton1_Click() '要能正确发送并需要对Microseft Outlook进行有效配置 On Error Resume Next Dim rowCount, endRowNo Dim objOutlook As New Outlook.Application Dim objMail As MailItem Dim SigString As String Dim Signature As String '取得当前工作表与Cells(1,1)相连的数据区行数 endRowNo = Application.WorksheetFunction.CountIfs(Range("A:A"), "<>") '创建objOutlook为Outlook应用程序对象 Set objOutlook = New Outlook.Application '开始循环发送电子邮件,比如从第二行开始,第一行是标题 For rowCount = 2 To endRowNo Set objMail = objOutlook.CreateItem(olMailItem) '创建objMail为一个邮件对象 '提取邮件签名 SigString = Worksheets("Sheet1").Cells(2, 5) If Dir(SigString) <> "" Then Signature = GetBoiler(SigString) Else Signature = "" End If With objMail .To = Cells(rowCount, 1).Value '设置收件人地址(从Excel表的第一列"邮件地址"字段中获得) .Subject = Cells(rowCount, 2).Value '设置邮件主题(从Excel表的第二列"邮件主题"字段中获得) .HTMLBody = Cells(rowCount, 3).Value & Signature '设置邮件内容(从Excel表的第三列"邮件内容"字段中获得) .Attachments.Add Cells(rowCount, 4).Value '设置附件(从Excel表的第四列"附件"字段中获得) .Send End With Set objMail = Nothing '销毁objMail对象 Next MsgBox ("邮件全部发送完成!") Set objOutlook = Nothing '销毁objOutlook对象 End Sub '提取邮件签名子函数 Function GetBoiler(ByVal sFile As String) As String Dim fso As Object Dim ts As Object Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2) GetBoiler = ts.readall ts.Close End Function

06

3、配置环境。 为了正确执行上面的代码,你还需要VBA编辑器中配置一下。 1) 在菜单中选择: 工具——〉引用

07

2)在弹出的对话框中找到Microseft Outlook X.0 Object Library并勾选上 (X.0是版本号,不同机器可能不一样)。如下图:

08

3)点击“OK”退出刚才的对话框。回到以下窗口:

09

4、关闭VBA编辑器,回到Excel表格中。

10

四、运行测试代码 1、取消控件编辑状态 点击下图红色圈中的“设计模式”按钮,取消刚才插入的控件的编辑状态。

11

2、运行代码 取消按钮的编辑状态之后可以看到按钮四周的编辑框没有了,这时候直接点击按钮就可以运行刚才输入的代码了。

12

3、测试代码 如果上面的代码没有正常运行的话需要重新进入代码编辑器查找原因,解决问题。 以上的代码已经经过多次测试没有问题,完全可以正常运行。

13

五、保存模板 如果运行完上面的代码之后,还想保存此模板以备下次使用。那么按下保存按钮之后,Excel会跳出以下的对话框。 这时候就需要注意了,如果选择“Yes(是),Excel将以正常的Excel文件保存,默认的扩展名为.xlsx。这是我们是常用的Excel文件。刚才输入的代码将会自动清除。 因此如果要保留VBA代码,就一定要选择“No(否)”。

14

点击“No(否)”之后,在下面的“另存为”对话框中选择正确的文件类型,见下图中的蓝色条。这时候文件默认的扩展名为.xlsm。 XLSM是XLSX的启用了宏的版本,也就是在XLSX文件中添加了VBA代码。


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/1051533.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • excel如何插入单元格

    excel如何插入单元格

    excel插入单元格的方法:首先单击上方【开始】菜单;然后在弹出新窗口以后,选择【单元格】;接着单击【插入】下的小三角,下方出现新窗口,再点击【插入单元格】;最后根据需要选择移动选项即可。excel插入单元格的方法:1、首先单击上方【开始】...

  • PHP调用美联软通短信接口实现短信发送

    PHP调用美联软通短信接口实现短信发送

    随着人们生活水平的提高和科技的发展,短信已成为人们交流的主要方式之一,越来越多的企业开始通过短信平台来实现营销、提醒等功能。在这个过程中,短信接口的选择显得尤为重要。本文将介绍如何通过php调用美联软通短信接口实现短信发送。一、美联软通短信...

  • word 邮件合并

    word 邮件合并

    word邮件合并功能:就是在主文档的固定内容中,插入与发送信息相关的一种数据,批量生成需要的邮件文档。极大的提高工作效率。在Office中,先建立两个文档:一个WORD包括所有文件共有内容的主文档(比如未填写的信封等)和一个包括变化信息的数...

  • Excel查找快捷键是ctrl加什么

    Excel查找快捷键是ctrl加什么

    excel查找快捷键是“ctrl”加“f”,具体操作:使用“ctrl+f”快捷键打开“查找”弹窗,在“查找内容”的搜索框内键入关键词,点击“查找全部”、“查找上一个”或“查找下一个”就可以进行查找了。本教程操作环境:windows7系统,W...

  • Excel函数学习之CHOOSE函数 vs IF函数

    Excel函数学习之CHOOSE函数 vs IF函数

    如果Excel函数圈也有江湖,那CHOOSE函数绝对算得上扫地僧。它不如IF函数那般威震江湖,但它的本领却更胜一筹。今天小花就带大家好好见识一下被大多数人冷遇的CHOOSE函数!   CHOOSE函数使用index_num返回数值参数列...

  • excel求差值用什么函数

    excel求差值用什么函数

    在excel中求差值是没有专门的函数,excel求差值的方法是:首先打开excel工作表;然后在f7单元格内输入“=d7-e7”公式;最后按回车即可得到两个数之间的差值即可。本文操作环境:Windows7系统、DellG3电脑、Micro...

  • excel竖列如何自动求和

    excel竖列如何自动求和

    excel竖列自动求和的方法:首先新建一个空白表格并输入相应的数据;然后在e2单元格里输入【=sum(b2:d2)】再确认;最后鼠标放在e2单元格右下角,出现十字标号的时候向下拖动即可。本文操作环境:Windows7系统,Microsoft...

  • Excel Mid函数的使用方法

    Excel Mid函数的使用方法

    在Excel中,提取指定长度的字符有两个函数,分别为Mid函数和Midb函数,前者用于提取指定长度的字符个数,后者用于提取指定长度的字节个数。用Mid函数提取时,无论是汉字、字母还是数字都算一个字符;用Midb函数提取时,汉字算两个字节...

  • 周排行
  • 月排行
  • 年排行

精彩推荐