2015-06-25 28 views
0

我有一個用於向用戶發送電子郵件的工作簿,它具有測試模式,以便將電子郵件發送到我自己的郵箱。Excel MailEnvelope錯誤

對於每個用戶生成我在一個名爲工作表中的具體消息「畫布」,然後使用下面的代碼將其發送給相關的用戶:

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跟不上所以我添加了Sl eep點在多個地方,但錯誤仍然發生。
+0

你在其他地方的代碼中是否有任何暫停? – Raystafarian

回答

0

我知道當我自動化Internet Explorer重循環時,如果我不在子函數的末尾添加一個ojbIE.Quit語句,代碼將會變慢以至於代碼將失敗,它有45個IE瀏覽器打開的進程。也許在這些方面增加一些內容有助於保持代碼的快速運行。

如果不這樣做的伎倆,我只想改變.Send命令.Display和手動點擊發送按鈕,或添加SendKeys命令「發送」的電子郵件這種方式,看看有沒有不停止發生的錯誤。只要你的代碼中有適當的'等待'命令,SendKeys函數應該可以正常工作。

+0

我不確定這裏的quit/kill命令,因爲我沒有用MailEnvelope加載任何東西,只是使其可見,等待命令對這個死亡沒有任何影響。整個宏都可以正常工作,因爲這個函數的調用被註釋掉了,所以我知道它在這裏。 – JonleePeakman