Excel自动批量发邮件

如何让Excel自动发送邮件?

比如说,使用outlook批量发送工资条,并且把指定单元格区域作为表格粘贴在邮件正文内……嗯,还得增加一个《关于企业调整职工工资的通知.docx》的附件。

发送后的邮件像下图酱紫的。

Excel自动批量发邮件

2.

首先,得有安装并注册过outlook软件。

然后,咱们得有一份工资表。发工资条嘛,没工资表发个大头鬼啊。示例工资表如下图所示。其中A列是邮箱。

Excel自动批量发邮件

再然后,在该工作簿内新建一张工作表。设定并美化下工资条。比如下图的模样。

Excel自动批量发邮件

3.

最后,复制以下代码,激活工资条所在的工作表后运行代码就可以批量发送邮件了。

Sub SendMailEnvelope()

Dim avntWage As Variant

Dim i As Long

Dim strText As String

Dim objAttach As Object

Dim strPath As String

With Application

.ScreenUpdating = False

.EnableEvents = False

End With

strPath = ThisWorkbook.Path & "关于企业调整职工工资的通知.docx"

'------------邮件发送附件的路径

avntWage = Sheets("工资表").[a1].CurrentRegion

'------------工资表的数据装入数组

For i = 2 To UBound(avntWage)

[a2:i2] = Application.Index(avntWage, i)

'------------工资条数据放入a2:i2区域

[b1:i2].Select

'------------选中b1:i2作为邮件正文的表格内容

ActiveWorkbook.EnvelopeVisible = True

'------------MailEnvelope可见

With ActiveSheet.MailEnvelope

strText = avntWage(i, 2) & "您好:" & vbCrLf & "以下是您" & _

avntWage(i, 3) & "月份工资明细,请查收!"

.Introduction = strText

'------------邮件正文内容

With .Item

.To = avntWage(i, 1)

'------------收件人

.CC = "[email protected]"

'------------抄送人

.Subject = avntWage(i, 3) & "月份工资明细"

'------------主题

Set objAttach = .Attachments

Do While objAttach.Count > 0

'------------Do While语句删除可能存在的旧附件

objAttach.Remove 1

MsgBox objAttach.Count

Loop

.Attachments.Add strPath

'------------添加新附件

.send

'------------发送邮件

End With

End With

Next i

ActiveWorkbook.EnvelopeVisible = False

With Application

.ScreenUpdating = True

.EnableEvents = True

End With

Set objAttach = Nothing

End Sub

猜你喜欢

转载自blog.csdn.net/weixin_33688840/article/details/86712809