我的情況:發送郵件時的Outlook尚未打開
我試圖發送電子郵件在Outlook未打開。如果Outlook正在運行,此代碼將起作用。如果Outlook關閉,代碼將創建一個不可見的進程,您可以在任務管理器中看到該進程。
代碼在.Send
期間遇到錯誤。它返回運行時錯誤287.
從我的經驗來看,某些VBA方法只有在對象可見或活動時才起作用。
我的工作是在撥打.Send
之前使用.Display(False)
。
調用.Send
後,它立即終止Outlook進程。 (請指出爲什麼正確的方向。)然後電子郵件卡在發件箱中。
我必須通過調用另一個CreateObject("Outlook.Application")
和周圍應用其他工作或者通過發件箱While Outbox.Items.Count > 0
或
循環通過SyncObjects
循環和手動調用.Start
運行發送/接收的發件箱。
我的問題:
有沒有辦法直接使用.Send
方法,而不是使用,同時還不必打開Outlook變通。
我的代碼:
Sub emailer()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.to = "[email protected]"
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Send 'or use .Display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
嘗試把「雖然Outbox.Items.Count> 0」循環到你的代碼中的「結束與」行之後 – jsotola