【发布时间】:2016-03-19 20:24:09
【问题描述】:
我有一个工作簿,当 API 计时器触发关闭时,Excel 会在关闭时崩溃。
编辑:下面链接中的工作簿只有计时器和退出模块,并且具有相同的行为,因此内容没有问题。
https://www.dropbox.com/s/x0xdwgj5h34ctdk/Book1.xlsm?dl=0
工作簿关闭几秒钟后 Excel 崩溃。我试过关闭计时器,取消隐藏所有工作表,卸载表单......所有对象都设置为Nothing。
我所做的只是Workbooks(ThisWorkbook.Name).Close SaveChanges:=True??!!
从用户窗体调用相同的子程序没有问题。工作簿关闭时 Excel 不会崩溃。
如何解决这个问题?
Sub ApplicationExit()
' Call UnloadAllForms
' DoEvents
' Sleep 1000
' Call StopCloseTimer
'DoEvents
'If Application.Workbooks.Count = 1 Then
' Workbooks(ThisWorkbook.Name).Save
' Application.Quit
'Else
DoEvents
Workbooks(ThisWorkbook.Name).Close SaveChanges:=True
'End If
End Sub
定时器触发的代码是;
Sub TimerCalled()
If CloseTimerValue = "" Then Call Reset_CloseTimerValue
DoEvents
If basTimers.CloseTimerValue <= Now() And Not Unlocked Then Call ApplicationExit
On Error Resume Next 'In case sheet is protected
ThisWorkbook.Sheets("JobIndex").Range("CloseCount").Value = Format(Now() - CloseTimerValue, "hh:m:s")
End Sub
用户表单说;
CloseUp:
i = MsgBox("Close Project Register?", vbYesNo, MsgBoxTitle)
Select Case i
Case vbYes
Call ApplicationExit
Case vbNo
Workbooks(ThisWorkbook.Name).Save
End Select
【问题讨论】: