Помогите, пожалуйста, с вопросом. Есть макрос, в котором присутствует цикл через DO...WHILE. Макрос запускается по нажатию кнопки. Самым первым шагом в работе макроса необходимо пользователю задать вопрос - выбрал ли он правильные данные из выпадающего списка в книге Эксель через, к примеру, MSGBOX vbOKCancel, и если пользователь ответит ОК, то начать работы макроса. Как все вышесказанное сделать я понимаю, но возник вопрос на том, как задать пользователю вопрос только один раз за все время, пока книга Эксель открыта? То есть, чтобы можно было открыть книгу, нажать кнопку запуска макроса, ответить ОК или CANCEL и до закрытия книги чтобы ответ на вопрос сохранялся в переменной и снова он бы не задавался, даже если кнопка запуска макроса нажимается снова и снова. Поискав в инете ответ на вопрос, нашел вариант с сохранением ответа на MSGBOK vbOKCancel в ячейке на скрытом листе той же книги, но этот способ мне не подходит, т.к. необходимо, чтобы при новом открытии книги вопрос задавался опять, а не видел уже сохраненное значение на скрытом листе и не брал его оттуда.
Помогите, пожалуйста, решить данную проблему.
UPD.: MSGBOX vbOKCancel находится до цикла DO...WHILE.
Здравствуйте!
Помогите, пожалуйста, с вопросом. Есть макрос, в котором присутствует цикл через DO...WHILE. Макрос запускается по нажатию кнопки. Самым первым шагом в работе макроса необходимо пользователю задать вопрос - выбрал ли он правильные данные из выпадающего списка в книге Эксель через, к примеру, MSGBOX vbOKCancel, и если пользователь ответит ОК, то начать работы макроса. Как все вышесказанное сделать я понимаю, но возник вопрос на том, как задать пользователю вопрос только один раз за все время, пока книга Эксель открыта? То есть, чтобы можно было открыть книгу, нажать кнопку запуска макроса, ответить ОК или CANCEL и до закрытия книги чтобы ответ на вопрос сохранялся в переменной и снова он бы не задавался, даже если кнопка запуска макроса нажимается снова и снова. Поискав в инете ответ на вопрос, нашел вариант с сохранением ответа на MSGBOK vbOKCancel в ячейке на скрытом листе той же книги, но этот способ мне не подходит, т.к. необходимо, чтобы при новом открытии книги вопрос задавался опять, а не видел уже сохраненное значение на скрытом листе и не брал его оттуда.
Помогите, пожалуйста, решить данную проблему.
UPD.: MSGBOX vbOKCancel находится до цикла DO...WHILE.giovanni
Сообщение отредактировал giovanni - Понедельник, 09.10.2017, 13:00
Почитайте о глобальных переменных. При первом запуске присвоили значение, при повторных просто проверка переменной на наличие в ней значения. После закрытия она исчезнет.
Почитайте о глобальных переменных. При первом запуске присвоили значение, при повторных просто проверка переменной на наличие в ней значения. После закрытия она исчезнет.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
нашел вариант с сохранением ответа на MSGBOK vbOKCancel в ячейке на скрытом листе той же книги, но этот способ мне не подходит, т.к. необходимо, чтобы при новом открытии книги вопрос задавался опять, а не видел уже сохраненное значение на скрытом листе и не брал его оттуда.
нашел вариант с сохранением ответа на MSGBOK vbOKCancel в ячейке на скрытом листе той же книги, но этот способ мне не подходит, т.к. необходимо, чтобы при новом открытии книги вопрос задавался опять, а не видел уже сохраненное значение на скрытом листе и не брал его оттуда.
как задать пользователю вопрос только один раз за все время, пока книга Эксель открыта
Можно задать вопрос при событии открытия книги. А там уже неважно, или в глобальной переменной хранить ответ, или в ячейке. При следующем открытии вопрос опять будет задан.
как задать пользователю вопрос только один раз за все время, пока книга Эксель открыта
Можно задать вопрос при событии открытия книги. А там уже неважно, или в глобальной переменной хранить ответ, или в ячейке. При следующем открытии вопрос опять будет задан.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
необходимо, чтобы при новом открытии книги вопрос задавался опять
Так при открытии или закрытии книги (или и так, и так - не помешает уж точно) стирайте ту ячейку и будет Вам счастье В модуль книги [vba]
Код
Private Sub Workbook_Open() Range("A1").ClearContents End Sub 'или Private Sub Workbook_BeforeClose(Cancel As Boolean) Range("A1").ClearContents End Sub
необходимо, чтобы при новом открытии книги вопрос задавался опять
Так при открытии или закрытии книги (или и так, и так - не помешает уж точно) стирайте ту ячейку и будет Вам счастье В модуль книги [vba]
Код
Private Sub Workbook_Open() Range("A1").ClearContents End Sub 'или Private Sub Workbook_BeforeClose(Cancel As Boolean) Range("A1").ClearContents End Sub