Я пишу код VBA, который взаимодействует с сохраненным документом, отправляет документ как электронное письмо (а не вложение), несколько раз в список электронной почты в Excel. My Excel лист имеет свой список в следующем формате:Код Excel VBA для отправки текстового документа в виде электронного письма в список Excel в Excel
+--------------------------------------------------------+----------------+-------------------------------------+---------------------------------------+----------------+----------------------------+
| Emails | CC1 | CC2 - Primary Electronic Sales - US | CC3 - Primary Electronic Trading - US | Additional CC? | Concatenation of all CC's |
+--------------------------------------------------------+----------------+-------------------------------------+---------------------------------------+----------------+----------------------------+
| [email protected]; [email protected]; [email protected] | Outlook Name 1 | Outlook name 2 | Outlook name 3 | Outlook name 4 | Concatenation of all CC's |
+--------------------------------------------------------+----------------+-------------------------------------+---------------------------------------+----------------+----------------------------+
код ниже. Цель состоит в том, чтобы загрузить документ «H: \ Thought Pieces \ Small Cap Names.doc» и отправить документ в виде электронной почты (не вложения) в каждую из записей в столбце «Электронная почта», а также Столбец «Конкатенация всех CC».
Тема может быть просто статичной, я ее не буду менять, любая помощь будет оценена ... прямо сейчас, почта отправляется только в первую строку, правильно отправляя по электронной почте список во втором столбце, первой строке и зацикливание списка в последнем столбце, первая строка.
Но он висит, и говорит, что «метод„субъект“объекта„_MailItem“потерпел неудачу. Я не могу пройти мимо этого, к сожалению, любая помощь очень ценится.
Sub SendOutlookMessages()
'Dimension variables.
Dim OL As Object, MailSendItem As Object
Dim W As Object
Dim MsgTxt As String, SendFile As String
Dim ToRangeCounter As Variant
Set wd = CreateObject("Word.Application")
Dim doc As Word.Document
'Assigns Word file to send
Set wd = GetObject(, "Word.Application")
If wd Is Nothing Then
Set wd = CreateObject("Word.Application")
blnWeOpenedWord = True
End If
Set doc = wd.Documents.Open _
(Filename:="H:\Thought Pieces\Small Cap Names.doc", ReadOnly:=True)
Set itm = doc.MailEnvelope.Item
'Starts Outlook session
Set OL = CreateObject("Outlook.Application")
Set MailSendItem = doc.MailEnvelope.Item
ToRangeCounter = 0
'Identifies number of recipients for To list.
For Each xCell In ActiveSheet.Range(Range("tolist"), _
Range("tolist").End(xlToRight))
ToRangeCounter = ToRangeCounter + 1
Next xCell
If ToRangeCounter = 256 Then ToRangeCounter = 1
'Creates message
For Each xRecipient In Range("tolist")
With MailSendItem
.Subject = ActiveSheet.Range("subjectcell").Text
.Body = MsgTxt
.To = xRecipient
.Cc = xRecipient.Offset(0, 6)
.Send
End With
Next xRecipient
'Ends Outlook session
Set OL = Nothing
End Sub
Вы должны отметить это. Хорошая работа! – KenSquare