Cancel is set to True
">
Это ясно показывает, что значение отмены истинно, и после этого моя книга закрывается! Почему?
Я хочу отменить закрытие файла Excel, если пользовательский ввод неправильный.
Я отладил код и обнаружил, что значение Cancel изначально было False, и оно становится True. Но как только Sub заканчивается, файл все еще закрыт.
(переменная ошибка определена в области объявления рабочей книги, поэтому доступна в модуле.)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
error = 0
check_for_error
If error = 1 Then
Cancel = True
Exit Sub
End If
Application.EnableEvents = False
Sheet1.Cells.ClearContents
Sheet2.Cells.Clear
Application.EnableEvents = True
End Sub
Я хочу отменить закрытие файла, если ошибка = 1.
Обновление :: Спасибо всем за ответы, но мне кажется, что ничего не работает! Вот как выглядит мой текущий код.
Option Explicit
Dim errYes As Byte
Private Sub Workbook_BeforeClose(Cancel As Boolean)
check_freeze_panel
If errYes = 1 Then
Cancel = True
Exit Sub
End If
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
End Sub
errYes возвращает 1, Cancel = True
выполняется, и моя книга все еще закрывается.
Я даже попытался прокомментировать весь код, и просто поставил Cancel = True
как предложено, и угадайте что, он все еще закрывается!