簡體   English   中英

從 Outlook 調用 Excel 宏會凍結 Outlook

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM