[英]Calling Excel Macro From Outlook Freezes Outlook
我很難創建一個 Outlook 宏來打開文件、調用 excel 宏並保存電子郵件草稿。
在過程方面——我知道讓 Excel 宏發送郵件而不是在程序之間切換會容易得多,但由於大文件和其他不重要的約束,現在不可能。
這是 Outlook 代碼
Sub bodeemail()
Dim ExApp As Excel.Application
Dim ExWbk As Workbook
Set ExApp = New Excel.Application
Set ExWbk = ExApp.Workbooks.Open("X:\Dropbox\xxxx\xxxx.xlsm")
ExApp.Visible = False
ExWbk.Application.Run "Module1.BodeFlash"
ExWbk.Close SaveChanges:=False
End Sub
這是Excel代碼。
Sub BODEFlash()
ThisWorkbook.Sheets("Email 2.0").Activate
bode = ActiveSheet.Cells(1, "AG")
bodetext = Format(bode, "#,###")
Dim OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim OutMail As Object
Set OutMail = OutApp.CreateItem(olMailItem)
Dim signature As String
Dim tstamp As String
Dim strBody As String
Application.ScreenUpdating = True
' Subject location
tstamp = "Subject " & Format(Date, "mm/dd/yyyy")
OutMail.Display
signature = OutMail.HTMLBody
' Change change email list here
On Error Resume Next
With OutMail
.To = "foo@bar.com"
.BCC = ""
.Subject = tstamp
.HTMLBody = "Flash Approved. " & bodetext & vbNewLine & signature
.Save
End With
'Tidy Up
Set OutApp = Nothing
Set OutMail = Nothing
End Sub
我有一種感覺,這與對象庫或 DoWhile 子句有關,但無法確定。 宏運行,創建電子郵件,並立即凍結 Outlook(必須在任務管理器中重新啟動)。
任何建議將不勝感激。
從你的代碼看來,Outlook 仍在等待 excel。 因此永遠不會突破: ExWbk.Application.Run "Module1.BodeFlash"
我建議把你的 excel 代碼放在最后:
Application.Quit
看看這是否有效。 它應該完全退出 excel 應用程序,但我不知道它是否也關閉了 Outlook。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.