075玩软件园
首页 > 资讯教程 > 软件教程 > 使用教程 > excel表格怎么发邮件|excel批量发邮件方法 批量给excel中的邮箱发邮件

excel表格怎么发邮件|excel批量发邮件方法 批量给excel中的邮箱发邮件

作者:075玩 来源:互联网 2023-08-22 04:00:07

excel表格怎么发邮件|excel批量发邮件方法

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

一、数据准备

准备如下图的数据表,包括以下内容:

1)第一列为“邮件地址”,必须是完整的带后缀的邮件地址。

2)第二列为“邮件主题”,不同的收件人可以根据需要写不同的主题。

3)第三列为“邮件内容”,不同的收件人可以根据需要写不同的内容。这里的内容在发送时是以纯文本格式发送的,在单元格里设置的格式均无效。

4)第四列为“邮件附件”,附件必须带有完整的路径,且必须包括文件扩展名。

5)第五列为“邮件签名”,签名必须带有完整的路径,且必须包括文件扩展名。这里的邮件签名是自动提取使用者邮箱里设置的签名,如果没有设置签名,那么将为空。

'要能正确发送并需要对MicroseftOutlook进行有效配置

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

'提取邮件签名子函数

FunctionGetBoiler(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

EndFunction

关 键 词:
返回顶部