Я новичок в VBA.Я пытаюсь сделать персональное массовое электронное письмо отдельным лицам.
Это то, что у меня есть, но я продолжаю получать сообщение об ошибке "требуется объект" с выделенным [mail_body_message = Sheet1.Range ("U3")].Затем иногда я получаю сообщение об ошибке «не определено» [Sub SendMassEmail ()].Мне нужна помощь.Я знаю, что я близко, но это расстраивает.
Sub SendEmail(what_address As String, carbon_copy As String, subject_line As String, mail_body As String)
Dim olApp As Outlook.Application
Set olApp = CreateObject("Outlook.Application")
Dim olMail As Outlook.MailItem
Set olMail = olApp.CreateItem(olMailItem)
olMail.To = what_address
olMail.CC = carbon_copy
olMail.Subject = subject_line
olMail.Body = mail_body
olMail.Send
End Sub
Sub SendMassEmail()
row_number = 1
Do
DoEvents
row_number = row_number + 1
Dim mail_body_message As String
Dim full_name As String
Dim email_address As String
Dim supervisor_email As String
Dim date_time As String
Dim computer_used As String
Dim device_description As String
mail_body_message = Sheet1.Range("U3")
full_name = Sheet1.Range("E" & row_number)
email_address = Sheet1.Range("F" & row_number)
supervisor_email = Sheet1.Range("H" & row_number)
date_time = Sheet1.Range("B" & row_number)
computer_used = Sheet1.Range("C" & row_number)
device_description = Sheet1.Range("J" & row_number)
mail_body_message = Replace(mail_body_message, "replace_name_here", full_name)
mail_body_message = Replace(mail_body_message, "replace_email_here", email_address)
mail_body_message = Replace(mail_body_message, "replace_supemail_here", supervisor_email)
mail_body_message = Replace(mail_body_message, "replace_date_here", date_time)
mail_body_message = Replace(mail_body_message, "replace_compter_here", computer_used)
mail_body_message = Replace(mail_body_message, "replace_device_here", device_description)
MsgBox mail_body_message
'Call SendEmail(Sheet1.Range("F" & row_number), Sheet1.Range("H" & row_number), "this is a test subject", mail_body_message)
Last_Row_IN_Column_F = Sheet1.Range("F1000").End(xlUp).Row
Loop Until row_number = Last_Row_IN_Column_F
MsgBox Last_Row_IN_Column_F
End Sub