Отправка писем нескольким получателям с помощью VBA

У меня есть следующий код, который позволяет мне прикрепить отчет, а затем отправить его одному получателю.

Как мне отправить его более чем на один адрес?

Я пробовал помещать адреса в массив, но выдает ошибку «Несоответствие типов».

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 = "[email protected]"
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

person Chrislaar123    schedule 27.08.2014    source источник


Ответы (2)


Адреса электронной почты, разделенные точкой с запятой:

strTO = "[email protected];[email protected];[email protected]"

Как заметил @HansUp в комментарии, если у вас есть адреса электронной почты уже в массиве, вы можете использовать функцию Join, чтобы преобразовать его в строку, разделенную точкой с запятой:

strTO = Join(YourArrayVariable, ";")
person Jean-François Corbett    schedule 27.08.2014

strTO - это строка.

Используйте тот же формат, что и при вводе вручную в поле «Кому».

strTO = "[email protected]; [email protected]"

person niton    schedule 27.08.2014