選項1
在特定情況下,最簡單的辦法是建保存並退出命令到Excel宏而不是Outlook。
也就是說,你可以修改您的Outlook代碼:
Sub AskMeAlerts()
Dim appExcel As Excel.Application
Dim wkb As Excel.Workbook 'Is this declaration necessary for some code elsewhere? You do not use this variable and I would recommend removing the declaration.
Set appExcel = CreateObject("Excel.Application")
With appExcel
.Workbooks.Open ("C:\Ask me question workflow.xlsm")
.Visible = True
.Run "'Ask me question workflow.xlsm'!AskMeFlow"
'No need to explicitly set alert values or save workbook as Excel macro will handle this.
End With
Set appExcel = Nothing
Set wkb = Nothing 'Again, is this necessary?
End Sub
然後,您可以添加以下的結束「向我提問workflow.xlsm」文件:
Application.DisplayAlerts = False
ThisWorkbook.Close SaveChanges:=True
Application.Quit
注意:如果您還將手動運行宏,或者在您不希望工作簿保存,關閉和退出的其他用例中,則可以考慮將輸入變量添加到AskMeFlow宏,該宏默認爲False,但設置爲通過Outlook是真實的。我認爲這稍微超出了這個答案的範圍,所以我不會詳細說明,但是讓我知道你是否對這個選項感興趣。
選項2
數據被編輯。見Uri的解決方案;我提出的改進不會從根本上改變這個解決方案。
選項3
根據Excel的代碼的性質,你可以把它變成一個功能,並捕獲輸出變量。喜歡的東西下面:
Sub AskMeAlerts()
Dim appExcel As Excel.Application
Dim wkb As Excel.Workbook
Dim StrOutput as string
StrOutput = "Excel macro did not complete."
Set appExcel = CreateObject("Excel.Application")
appExcel.Workbooks.Open ("C:\Ask me question workflow.xlsm")
appExcel.Visible = True
StrOutput = appExcel.Run "'Ask me question workflow.xlsm'!AskMeFlow"
MsgBox StrOutput
appExcel.DisplayAlerts = False
appExcel.ActiveWorkbook.Save
appExcel.Quit Set appExcel = Nothing
Set wkb = Nothing
End Sub
你會再改AskMeFlow的功能,並添加以下代碼:
Function AskMeFlow() as String
AskMeFlow = "Uncaught error executing Excel code."
'Your code here
AskMeFlow = "Excel code completed successfully!"
End Function
請告訴我們有關部分代碼。 (即不是全部) –
'Dim appExcel As Excel.Application Dim wkb As Excel.Workbook Set appExcel = CreateObject(「Excel.Application」) appExcel.Workbooks.Open(「C:\ Ask me question workflow .XLSM「) appExcel.Visible =真 appExcel.Run 」 '向我提問workflow.xlsm'!AskMeFlow「 ----在這裏,我想等到宏觀完成---- appExcel .DisplayAlerts = False appExcel.ActiveWorkbook.Save appExcel.Quit Set appExcel = Nothing 設置wkb = Nothing End Sub' – user3016795
我想你可以自己看到,這是完全難以辨認的...請編輯你的問題,將你的代碼放在那裏,並使用'{}'按鈕正確格式化。 –