Sending emails to multiple recipients using VBA

爷,独闯天下 提交于 2019-11-28 08:08:47

问题


I have the following code which allows me to attach a report then send it to one recipient.

How do I send it to more than one address?

I've tried putting the addresses in an array but it gives a "Type Mismatch" error.

Dim strReportName As String
Dim oLook As Object
Dim oMail As Object
Dim olns As Outlook.Namespace
Dim strTO As String
Dim strCC As String
Dim strMessageBody As String
Dim strSubject As String

Set oLook = CreateObject("Outlook.Application")
'Set olns = oLook.GetNamespace("MAPI")
Set oMail = oLook.CreateItem(0)

'*********************** USER DEFINED SECTION ************************
strTO = "chrissparkes@me.com"
strMessageBody = "<---This is an automatically generated email. Please do not respond.---->"
strSubject = "Daily Skip"
'*********************************************************************

With oMail
.To = strTO
 .CC = strCC
 .Body = strMessageBody
 .Subject = strSubject

 .Attachments.Add "C:\Output Reports\SkipLotReport.xlsx"
 .Send
End With

Set oMail = Nothing
Set oLook = Nothing
'Set olns = Nothing


'DB.Close
'tbloutput.Close
'dbLocal.Close
objWorkbook.Close

'Set objmail = Nothing
'Set DB = Nothing
Set tbloutput = Nothing


Set objWorksheet = Nothing
Set objWorkbook = Nothing
Set objExcel = Nothing
Set tbloutput = Nothing
Set dbLocal = Nothing

回答1:


Semicolon-separated e-mail addresses:

strTO = "chrissparkes@me.com;you@me.com;thirdguy@there.org"

As @HansUp remarked in a comment, if you have your email addresses already in an array, you can use the Join function to convert it to a semicolon-delimited string:

strTO = Join(YourArrayVariable, ";")



回答2:


strTO is a string.

Use the same format as you would enter manually in the To box.

strTO = "chrissparkes@me.com; another@me.com"



来源:https://stackoverflow.com/questions/25524955/sending-emails-to-multiple-recipients-using-vba

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!