Excel MailEnvelope错误

时间:2015-06-25 15:45:44

标签: excel vba excel-vba

我有一个向用户发送电子邮件的工作簿,它有一个测试模式,以便将电子邮件发送到我自己的邮箱。

对于每个用户,我在名为' canvas'的工作表中生成特定消息。然后使用以下代码将其发送给相关用户:

Private Sub sendEmail(sendOnBehalfOf As String, email As String, emailCC As String, subject As String)
  ActiveWorkbook.EnvelopeVisible = True
  With ActiveSheet.MailEnvelope
    .Item.SentOnBehalfOfName = sendOnBehalfOf
    .Item.To = email
    .Item.cc = emailCC
    .Item.subject = subject
    .Item.Send
  End With
End Sub

大约30-40封电子邮件后,我收到错误消息:

"运行时错误' -2147417856(80010100)':

由于网络或其他通信问题,操作失败。验证您的连接,然后重试。"

我正在测试的所有电子邮件目前都已发送到我的电子邮件,我已注意到一些观察结果,但无法找到解决方案:

  • 失败前发送的电子邮件数量通常始终相同
  • 代码快速启动,然后在错误
  • 之前开始减速
  • 当我开始在Outlook中接收电子邮件时以及宏失败时似乎关联
  • 我认为可能是代码运行得太快,MailEnvelope无法跟上,所以我在多个地方添加了Sleep点,但错误仍然存​​在。

2 个答案:

答案 0 :(得分:0)

我知道当我自动化大量的Internet Explorer循环时,如果我不在子函数的末尾添加一个ojbIE.Quit语句,代码会慢下来以致代码失败,因为它IE有45个进程在后台打开。也许在这些行中添加一些东西有助于保持代码以快速的速度运行。

如果没有这个诀窍,我只需将.Send命令更改为.Display并手动点击发送按钮,或者向{#添加SendKeys命令39;发送'这样的电子邮件,看看是否没有发生错误。只要你有适当的等待'代码中的命令,SendKeys函数应该可以正常工作。

答案 1 :(得分:0)

在.Item.Send行之后放置DoEvents