#excel #vba #outlook
#excel #vba #outlook
Вопрос:
У меня есть создать динамическое электронное письмо, в котором пользователь может отправлять несколько электронных писем в зависимости от количества данных в указанном столбце. Сам код будет следовать текстовому полю слово за словом и генерироваться в теле письма, но в настоящее время я пытаюсь заставить Excel открыть шаблон собрания по электронной почте вместо обычного письма.
Вот код.
Sub send_mass_email()
Dim i As Integer
Dim name, email, body, subject, copy, place, business As String
Dim OutApp As Object
Dim OutMail As Object
body = ActiveSheet.TextBoxes("TextBox 1").Text
i = 2
'Loop down name column starting at row 2 column 1
Do While Cells(i, 1).Value <> ""
name = Split(Cells(i, 1).Value, " ")(0) 'extract first name
email = Cells(i, 2).Value
subject = Cells(i, 3).Value
copy = Cells(i, 4).Value
business = Cells(i, 5).Value
place = Cells(i, 6).Value
'replace place holders
body = Replace(body, "C1", name)
body = Replace(body, "C5", business)
body = Replace(body, "C6", place)
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.to = email
.cc = copy
.subject = subject
.body = body
'.Attachments.Add ("") 'You can add files here
.display
'.Send
End With
'reset body text
body = ActiveSheet.TextBoxes("TextBox 1").Text
i = i 1
Loop
Set OutMail = Nothing
Set OutApp = Nothing
MsgBox "Email(s) Sent!"
End Sub
Я пытался использовать olmeeting, но возникает ошибка : Object doesn't support this property or method
.
Ответ №1:
Никаких глупых вопросов!
Пожалуйста, обратитесь к документации VBA здесь.
Похоже, вы хотите изменить эту часть кода:
Set OutMail = OutApp.CreateItem(0)
Для
Set OutMail = OutApp.CreateItem(1)
Из документации следует, что, изменив параметр метода .CreateItem на одно из перечисленных здесь значений, вы достигнете желаемого эффекта. Пожалуйста, обратите внимание, что я еще не тестировал его.