http://www.pptjcw.com

excel怎么做表格:[Excel VBA]让Excel自动批量发邮件

    如何让Excel自动发送邮件?

    比如说,使用outlook批量发送工资条,并且把指定单元格区域作为表格粘贴在邮件正文内……嗯,还得增加一个《关于企业调整职工工资的通知.docx》的附件。

    发送后的邮件像下图酱紫的。


    excel怎么做表格:[Excel VBA]让Excel自动批量发邮件



    2.

    首先,得有安装并注册过outlook软件。

    然后,咱们得有一份工资表。发工资条嘛,没工资表发个大头鬼啊。示例工资表如下图所示。其中A列是邮箱。


    excel怎么做表格:[Excel VBA]让Excel自动批量发邮件



    再然后,在该工作簿内新建一张工作表。设定并美化下工资条。比如下图的模样。


    excel怎么做表格:[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教程:一对多查询的万金油公式 下一篇:excel宏教程:复制带图片的表格

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。