学习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所示的界面,因此运行代码后,将在后台直接群发电子邮件给收件人和抄送人。
亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。