我需要在 Excel VBA 中编写一个宏,它会在关闭 excel 后终止在 windows 任务中运行的进程。我在事件 workbook_BeforeClose 上尝试过这样做
Private Sub Workbook_BeforeClose(CANCEL As Boolean)
Run "MacroCloseProcess"
End Sub
MacroCloseProcess 的定义是这样的
Private Sub MacroCloseProcess()
Dim oWMT As Object, oProcess As Object
Set oWMT = GetObject("winmgmts://")
For Each oProcess In oWMT.InstancesOf("Win32_Process")
If (oProcess.name) = pWcfHostApp Then
If oProcess.Terminate() = 0 Then Exit Sub
End If
Next
End Sub
这可行,但是,如果工作簿中有更改,excel 会为用户提供“是否要保存对'Sheet1.xlsx'所做的更改?保存,不保存,取消
如果用户单击取消,Excel 不会退出(根据设计),但是哦,该过程已终止,因为它处于“BeforeClose”事件中。我如何编写此代码以使其在 excel 关闭后命中?