如何让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 |