excel2010实战技巧精粹pdf(Excel实战技巧35:使用Excel VBA群发电子邮件)

wufei123 发布于 2023-11-29 阅读(413)

学习Excel技术,关注微信公众号:excelperfect在《Excel实战技巧34:使用Excel VBA发送电子邮件》中,我们介绍了在Excel中通过VBA代码来发送电子邮件的基本代码在此基础上,本文介绍向不同收件人、抄送人一次发送包含多个附件的电子邮件的技巧。

如下图1所示,在工作表Sheet1的列A中存放收件人的电子邮件地址,列B中存放抄送人的电子邮件地址,列C中存放要发送带有完整文件路径的文件。

图1你可以使用前期绑定,先设置对Outlook对象库的引用,如《Excel实战技巧34:使用Excel VBA发送电子邮件》中所讲解的,也可以使用后期绑定下面是使用后期绑定的代码:Sub SendEMail()。

声明变量    Dim outlookApp As Object    Dim myMail As Object    Dim strFile As String    Dim to_emails As String

    Dim cc_emails As String    Dim i As Integer    Dim j As Integer    Dim lngLastA As Long    Dim lngLastB As Long

    Dim lngLastC As Long创建Outlook对象实例    Set outlookApp =CreateObject("Outlook.Application")创建MailItem

对象    Set myMail = outlookApp.CreateItem(0)获取列A、列B和列C中数据所在的最后一行    lngLastA = Sheet1.Range("A" &Rows.Count).End(xlUp).Row

    lngLastB = Sheet1.Range("B" &Rows.Count).End(xlUp).Row    lngLastC = Sheet1.Range("C" &Rows.Count).End(xlUp).Row

收件人邮件地址    For i = 2 To lngLastA        to_emails = to_emails & Cells(i, 1)& ";"    Next抄送邮件地址    For i = 2 To lngLastB

        cc_emails = cc_emails & Cells(i, 2)& ";"    Next添加邮件附件    For i = 2 To lngLastC        strFile = Cells(i, 3)

        myMail.Attachments.Add strFile    Next添加收件人,抄送,邮件主题和内容发送邮件    With myMail        .CC = cc_emails

        .To = to_emails        .Subject = "请查收工作文件!"        .Body = "所有人:"& vbNewLine & "请仔细阅读这些文件!"        .Send

    End With   End Sub运行代码后,调用的Outlook界面如下图2所示。

图2由于我们没有使用myMail.Display方法显示图2所示的界面,因此运行代码后,将在后台直接群发电子邮件给收件人和抄送人。

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。