VBA Excel发送多封电子邮件

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 = ""

我正在尝试编写一个程序,向不同的经理发送电子邮件,重新收集他们的信息。出于某些原因,该程序只发送一封电子邮件,并说它已完成,没有错误。我如何让它发送全部14封电子邮件。现在所有的电子邮件都指向我的直接电子邮件地址。请帮忙

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