如何让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 VBA_让Excel主动批量发邮件
2019年11月25日 17:40 发布来源:Excel学习网
原创文章如转载请注明:转载自Excel学习网 [ http://www.excelxx.com/]
需要保留本文链接地址:http://www.excelxx.com/xuexixinde/11191.html
需要保留本文链接地址:http://www.excelxx.com/xuexixinde/11191.html
上一篇:excel滚动条的处理办法
下一篇:Excel VBA函数_自定义排序
相关教程:
经典Excel学习视频及教程推荐:
Excel优秀工具推荐:
小工具推荐: