VBA InputBox запрашивает дважды
У меня есть простой скрипт для запроса пароля перед закрытием книги (чтобы предотвратить случайное закрытие), но InputBox
открывается снова, если я ввожу правильное ключевое слово. Я создал несколько итераций приведенного ниже сценария, но не могу его решить.
Sub Workbook_BeforeClose(Cancel As Boolean)
If InputBox("Please enter the password to close the workbook.") <> "pa55word" Then
MsgBox ("Incorrect password. Please try again")
Cancel = True
Exit Sub
Else
GoTo GoToClose
End If
GoToClose:
ThisWorkbook.Close SaveChanges:=False
End Sub
2 ответа
Решение
Если вы кодируете это так:
- код просто переходит к сохранению книги, если пароль введен правильно без второго закрытия
ThisWorkbook.Saved
спереди сообщает Excel, что рабочая книга полностью обновлена, поэтому вы не хотите сохранять сообщение, т. е. выполняет ту же задачу, что иFalse
частьThisWorkbook.Close SaveChanges:=False
и существующее событие Save закрывает книгу.
перекроить
Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
If InputBox("Please enter the password to close the workbook.") <> "pa55word" Then
MsgBox ("Incorrect password. Please try again")
Cancel = True
End If
End Sub