Ho una cartella di lavoro che arresta in modo anomalo Excel alla chiusura quando la chiusura viene attivata da un timer API.Excel 2016 arresto anomalo del timer API avviato Workbook.close
Modifica: la cartella di lavoro nel seguente link non ha altro che il timer e i moduli di uscita e ha lo stesso comportamento, quindi non è un problema con il contenuto.
https://www.dropbox.com/s/x0xdwgj5h34ctdk/Book1.xlsm?dl=0
Pochi secondi dopo la cartella di lavoro di Excel chiude crash. Ho provato a spegnere il timer, a scoprire tutti i fogli, a scaricare i moduli ... tutti gli oggetti sono impostati su Nothing
.
Tutto quello che sto facendo è Workbooks(ThisWorkbook.Name).Close SaveChanges:=True
?? !!
Lo stesso sub viene chiamato da un form utente senza problemi. La cartella di lavoro si chiude senza arresto anomalo di Excel.
Come risolvere il problema?
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
Il codice attivato dal timer è;
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
L'utente dice;
CloseUp:
i = MsgBox("Close Project Register?", vbYesNo, MsgBoxTitle)
Select Case i
Case vbYes
Call ApplicationExit
Case vbNo
Workbooks(ThisWorkbook.Name).Save
End Select
La chiusura dell'istanza di Excel da application.ontime è peggiore. Anziché arrestarsi in modo anomalo, Excel si spegne/riavvia diverse/molte volte e potrebbe richiedere l'eliminazione tramite Task Manager per interromperlo. –