Excel 发送带有循环和排除的群发电子邮件?
我正在尝试使用Do…Until循环发送电子邮件。我在VBA方面一点经验都没有,我只是想弄清楚如何从excel发送电子邮件,并让代码停在空白处或0处(因为我正在使用其他工作簿中的引用来保持更新) 我也试着把它改成一个For…Next语句,但没用Excel 发送带有循环和排除的群发电子邮件?,excel,vba,email,Excel,Vba,Email,我正在尝试使用Do…Until循环发送电子邮件。我在VBA方面一点经验都没有,我只是想弄清楚如何从excel发送电子邮件,并让代码停在空白处或0处(因为我正在使用其他工作簿中的引用来保持更新) 我也试着把它改成一个For…Next语句,但没用 Sub SendEmail(what_address As String, subject_line As String, mail_body As String) Dim olApp As Outlook.Application Set ol
Sub SendEmail(what_address 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.Subject = subject_line
olMail.BodyFormat = olFormatHTML
olMail.HTMLBody = 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 policy_number As String
Dim address As String
Dim city As String
Dim day As String
Dim web_address As String
mail_body_message = Sheet5.Range("I2")
full_name = Sheet5.Range("B" & row_number) & " " & Sheet5.Range("C" &
row_number)
policy_number = Sheet5.Range("F" & row_number)
address = Sheet5.Range("D" & row_number)
city = Sheet5.Range("E" & row_number)
day = Sheet5.Range("G" & row_number)
web_address = Sheet5.Range("H1")
mail_body_message = Replace(mail_body_message, "replace_name_here",
full_name)
mail_body_message = Replace(mail_body_message, "policy_number_replace",
policy_number)
mail_body_message = Replace(mail_body_message, "day_replace", day)
mail_body_message = Replace(mail_body_message, "address_replace",
address)
mail_body_message = Replace(mail_body_message, "city_replace", city)
mail_body_message = Replace(mail_body_message, "web_replace",
web_address)
Call SendEmail(Sheet5.Range("A" & row_number), "Insurance update",
mail_body_message)
Loop Until row_number = 2
MsgBox "Complete!"
End Sub
理想情况下,这将阅读所有行并发送与我的电子邮件正文相关的电子邮件。它将从我的引用公式和没有数据的空格中排除0。当我没有手动设置循环的行数时,我会不断遇到运行时错误。它会发送电子邮件,但会阻止自动打开的sub运行
Dim row_number As Integer
丢失您收到的错误消息的确切措辞是什么,是哪行代码导致了错误?运行时错误“-2147477259(80004005)”:我们需要知道将此消息发送给谁。确保至少输入一个名称。只要代码部分有正确的单元格,宏就可以很好地实际发送电子邮件:Loop Until row_number=s part。我只是想添加一些行,告诉它停止发送,如果它没有一个有效的电子邮件或短信格式。如果它是空的或者基本上是0。VBA如何从我的参考公式中读取0?它是将其作为实际的0读取还是仅作为占位符读取?我对此非常陌生。如果我加上这一点,它会给我一个编译错误:当前范围中的重复声明