Я пытаюсь создать электронное письмо и заполнить несколько получателей на основе списка. Код, который я собрал, не работает. Кто-нибудь знает, что такое код с ошибкой?
Я попытался поместить ссылку на столбец списка в строку ".To", но это дает нулевую ошибку. Затем я нашел некоторый код, который должен перебирать значения списка, но он не заполняет никаких получателей. Мои знания VBA ограничены, поэтому я могу неправильно использовать код цикла.
Public Sub cmdEmailContact_Click()
Dim appOutLook As Outlook.Application
Dim MailOutLook As Outlook.MailItem
Dim strPath As String
Dim strFilter As String
Dim strFile As String
Dim strFileEnd As String
Dim strEmailRecipients As String
strPath = "C:\Users\username\Desktop\Invoice Test\GCX"
strFilter = Me.txtInvNum
strFileEnd = ".pdf"
strFile = Dir(strPath & strFilter & strFileEnd)
strEmailRecipients = ""
For N = 0 To Me.lstContacts.ListCount - 1
If Me.lstContacts.Selected(N) = True Then
strEmailRecipients = strEmailRecipients & "; " & Me.lstContacts.Column(3, N)
End If
Next N
strEmailRecipients = Mid(strEmailRecipients, 3)
If strFile <> "" Then
Set appOutLook = CreateObject("Outlook.Application")
Set MailOutLook = appOutLook.CreateItem(olMailItem)
With MailOutLook
.BodyFormat = olFormatRichText
.To = strEmailRecipients
''.cc = ""
''.bcc = ""
.Subject = "text here"
.SentOnBehalfOfName = "emailname"
.HTMLBody = "text here"
.Attachments.Add (strPath & strFilter & strFileEnd)
'.Send
.Display
End With
Else
MsgBox "No file matching " & strPath & strFilter & strFileEnd & " found." & vbCrLf & _
"Process has been stopped."
Exit Sub
End If
End Sub
Я ожидаю, что strEmailRecipients будут равны списку писем, разделенных точкой с запятой, на основе списка, но он ничего не заполняет в генерируемой электронной почте. Нет сообщений об ошибках.