设置主页 | 收藏本站 Excel学习网-公益型的EXCEL在线学习网站,助您轻松办公!

Excel VBA_让Excel主动批量发邮件

2019年11月25日 17:40 发布来源:Excel学习网
 
如何让Excel主动发送邮件?
比如说,运用outlook批量发送薪酬条,并且把指定单元格区域作为表格粘贴在邮件正文内……嗯,还得添加一个《关于企业调整职工薪酬的通知.docx》的附件。
发送后的邮件像下图酱紫的。
Excel VBA_让Excel主动批量发邮件
2.
首先,得有安装并注册过outlook软件。
然后,我们得有一份薪酬表。发薪酬条嘛,没薪酬表发个大头鬼啊。示例薪酬表如下图所示。其间A列是邮箱。
Excel VBA_让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 = "treasurer@gmail.com"
'------------抄送人
.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
原创文章如转载请注明:转载自Excel学习网 [ http://www.excelxx.com/]
需要保留本文链接地址:http://www.excelxx.com/xuexixinde/11191.html
分享到:
网站地图 | XML地图 | 免责声明 | 关于我们 | Excel学习网:优秀的EXCEL在线学习和资源分享网站。
版权所有: CopyRight © 2013-2018 www.excelcn.com All Rights Reserved.
豫ICP备12002644号