1

我需要一些有关 Excel VBA(Windows 7 上的 2010)的帮助。我想要做的是关闭 Excel,然后关闭电脑。我的代码是:

Declare Function ExitWindowsEx& Lib "User32" (ByVal uFlags As Long, ByVal dwReserved AS Long)
Global Const EWX_LOGOFF = 0
Global Const EWX_FORCE = 4

....Main Code Here ....

Application.DisplayAlerts = False
Application.Quit

Action = ExitWindows(EWX_LOGOFF or EWX_FORCE, 0)

间歇性地我收到以下错误:

无法退出 Microsoft Excel

机器仍然注销,这是我想要的,所以这不是一个主要问题。我只想干净利落地退出。我保留了 EWX_FORCE 因为我不想被 Windows 提示。有什么建议么?

4

1 回答 1

0

也许DoEvents之后失踪?Application.Quit包括在内,以便 Excel 有足够的时间关闭,否则您将收到错误。顺便说一句,这对我有用。

此外,如果打开了任何工作簿/工作簿,那么最好在有/没有保存代码的情况下关闭它/它们,因为您可能会丢失数据。

Public Declare Function ExitWindowsEx Lib "user32" (ByVal dwOptions As Long, _
ByVal dwReserved As Long) As Long

Public Const EWX_LogOff As Long = 0
Public Const EWX_SHUTDOWN As Long = 1
Public Const EWX_REBOOT As Long = 2
Public Const EWX_FORCE As Long = 4

Sub Sample()
    '
    '~~> Main Code Here
    '
    Application.DisplayAlerts = False
    Application.Quit

    DoEvents

    ExitWindowsEx EWX_LogOff Or EWX_FORCE, &HFFFF
End Sub
于 2012-07-12T10:02:59.957 回答