VBA Excel发送多封电子邮件
我正在尝试编写一个程序,向不同的经理发送电子邮件,重新收集他们的信息。出于某些原因,该程序只发送一封电子邮件,并说它已完成,没有错误。我如何让它发送全部14封电子邮件。现在所有的电子邮件都指向我的直接电子邮件地址。请帮忙VBA Excel发送多封电子邮件,vba,excel,Vba,Excel,我正在尝试编写一个程序,向不同的经理发送电子邮件,重新收集他们的信息。出于某些原因,该程序只发送一封电子邮件,并说它已完成,没有错误。我如何让它发送全部14封电子邮件。现在所有的电子邮件都指向我的直接电子邮件地址。请帮忙 Dim i As Integer i = 1 Do While i <> 14 On Error Resume Next With OutMail .to = SupervisorAddress(i) .CC = "" .BCC = ""
Dim i As Integer
i = 1
Do While i <> 14
On Error Resume Next
With OutMail
.to = SupervisorAddress(i)
.CC = ""
.BCC = ""
.Subject = "QTF Expired"
.Body = Body(i)
'You can add a file like this
'.Attachments.Add ("C:\test.txt")
.Send 'or use .Display
End With
On Error GoTo 0
i = i + 1
Loop
Dim i作为整数
i=1
我14岁的时候做
出错时继续下一步
发邮件
.to=主管地址(i)
.CC=“”
.BCC=“”
.Subject=“QTF已过期”
.Body=Body(i)
'您可以添加这样的文件
'.Attachments.Add(“C:\test.txt”)
.Send'或use.Display
以
错误转到0
i=i+1
环
在第一次迭代后,用F8
逐步完成它,会发生什么?此外,请删除“下一步继续执行错误时的”
,并告知是否引发了任何错误。或者,对i=1到14执行//[您的代码]//下一个i
而不是While
循环。什么是发邮件
?一旦第一次发送,就不能再发送。您需要为循环中的每个迭代创建一个新的邮件项。此外,这种类型的循环正是“下一步”循环的目的:在…循环时使用Do有点混乱。@TimWilliams-Outmail是“Set-Outmail=OutApp.CreateItem(0)”@BruceWayne当我在没有错误恢复的情况下运行程序时,我得到了运行时错误-2147221238该项已被移动或删除使用F8
,在第一次迭代后发生了什么?此外,请删除“下一步继续执行错误时的”
,并告知是否引发了任何错误。或者,对i=1到14执行//[您的代码]//下一个i
而不是While
循环。什么是发邮件
?一旦第一次发送,就不能再发送。您需要为循环中的每个迭代创建一个新的邮件项。此外,这种类型的循环正是“下一步”
循环的目的:在…循环时使用Do有点混乱。@TimWilliams-Outmail是“Set-Outmail=OutApp.CreateItem(0)”@BruceWayne当我在没有错误恢复的情况下运行程序时,我得到了运行时错误-2147221238项目已被移动或删除危险问题-我个人更喜欢For x=y to z
循环,而不是Do while…
循环。我注意到你切换了,而循环换成了换成了换成了换成了循环--这也是个人的偏好,还是有性能或其他一些差异呢?嗨@BruceWayne-我在同一主题上发表我的评论后注意到了你的评论。我想,当迭代次数像本例中那样预先确定时,使用进行下一步
是一种惯例<当迭代次数仅在循环迭代时确定时,code>Do While…循环
更适合。切向问题-我个人更喜欢x=y的循环而不是z
循环,而不是Do While…
循环。我注意到你切换了,而循环换成了换成了换成了换成了循环--这也是个人的偏好,还是有性能或其他一些差异呢?嗨@BruceWayne-我在同一主题上发表我的评论后注意到了你的评论。我想,当迭代次数像本例中那样预先确定时,使用进行下一步
是一种惯例<当迭代次数仅在循环迭代时确定时,code>Do While…Loop
更适合。
Dim i As Long
For i = 1 To 14
With OutApp.CreateItem(0)
.to = SupervisorAddress(i)
.CC = ""
.BCC = ""
.Subject = "QTF Expired"
.Body = Body(i)
'You can add a file like this
'.Attachments.Add ("C:\test.txt")
.Send 'or use .Display
End With
Next