【[Excel VBA]让Excel自动批量发邮件】如何让Excel自动发送邮件?
比如说 , 使用outlook批量发送工资条,并且把指定单元格区域作为表格粘贴在邮件正文内……嗯,还得增加一个《关于企业调整职工工资的通知.docx》的附件 。
发送后的邮件像下图酱紫的 。
文章插图
文章插图
2.
首先,得有安装并注册过outlook软件 。
然后,咱们得有一份工资表 。发工资条嘛,没工资表发个大头鬼啊 。示例工资表如下图所示 。其中A列是邮箱 。
文章插图
文章插图
再然后,在该工作簿内新建一张工作表 。设定并美化下工资条 。比如下图的模样 。
文章插图
文章插图
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
- 让家中跳蚤通通消失的方法 家里有跳蚤怎么办能除根
- 这么多图表类型,你让我怎么选?
- 职场必备 一键将word文档或Excel表格转成完整的图片
- 函数公式和透视表教程,就藏在你的Excel里!
- Excel数据查询,换个思路更简单
- 六扇门为何让武林高手闻风丧胆 六扇门是什么意思
- 解决U盘提示格式化的小妙招 一插u盘就让格式化怎样解决
- 喜茶部分产品降价,回应:让用户以更低成本喝喜茶
- 40岁的成熟女人,必须穿出自己的风格,十款日系穿搭让你轻松变美
- 多个excel合并到一张表格的方法 将多个excel表合并到一个工作簿中