[Excel VBA]让Excel自动批量发邮件
2019年11月08日 14:42 发布来源: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 |
原创文章如转载请注明:转载自Excel学习网 [ http://www.excelxx.com/]
需要保留本文链接地址:http://www.excelxx.com/xuexixinde/10922.html
需要保留本文链接地址:http://www.excelxx.com/xuexixinde/10922.html
上一篇:一对多查询的万金油公式
下一篇:复制带图片的表格
相关教程:
经典Excel学习视频及教程推荐:
Excel优秀工具推荐:
小工具推荐: