我正在使用MS Excel和Outlook 2013.我試圖自動化一個Excel電子表格,它使用Outlook將5封電子郵件發送到指定的地址。通過Excel發送電子郵件一次一個VBA
訣竅是我希望每條消息一次顯示一條消息,並且只有當用戶點擊發送或關閉消息時才轉移到下一條消息。這是我到目前爲止:
Sub Send_Emails()
Dim OutApp As Object: Set OutApp = CreateObject("Outlook.Application")
Dim OutMail As Object: Set OutMail = OutApp.CreateItem(0)
'Send Email
With OutMail
.to = "[email protected]"
.Subject = "This is the Subject"
.Body = "This is message"
.Display
End With
On Error Resume Next:
OutMail = Nothing
OutApp = Nothing
End Sub
Sub Send_Five_Emails()
For i = 1 To 5 'Send email 5 times
Call Send_Emails
Next i
End Sub
此代碼的問題是,它一次顯示所有5個消息窗口。有沒有辦法讓一個消息窗口的Close事件觸發下一個消息窗口的顯示,以便一次顯示一個窗口?
我很感激幫助。
我想你可以在一個MsgBox而不顯示顯示信息的部分,然後'Send'每個消息(否則他們將有兩個MSGBOX和消息顯示響應) 。否則,我懷疑有一個簡單的方法來實現這一點。即我懷疑它會很複雜*。有人可能會糾正我;) –
在_Call之前檢查sent-items文件夾Send_Emails_ – jsotola
沒有一種簡單的方法可以專門做關於窗口關閉的問題(而不是深入VB.Net)。如果您的實際目標被解釋爲避免XY-問題,這將有所幫助。如果你只是想在每個消息中「採取一個高峯」(而不是技術術語!),這下面的代碼可能適合你... 在你的代碼之後:'調用Send_Emails'放兩行:'Dim answr As Byte :answr = MsgBox(「Everything Good?Click Okay To continue!」,vbOKCancel)': 'If answr <> vbOK Then Exit For' – PGCodeRider