2012-07-12 3 views
1

Я хотел бы, чтобы макрос VBA приостановил его выполнение и дождался, пока пользователь нажмет клавишу, прежде чем продолжить. Есть ли быстрый способ сделать это, или мне лучше использовать всплывающее окно?Легкий способ приостановить выполнение и ждать нажатия клавиши в VBA?

ответ

3

Предупреждение. По моему опыту, если только ваш VBA не включает в себя инструкции DoEvents, приложения Office не реагируют, пока работает VBA.

Если вы хотите временно приостановить процесс до тех пор, пока пользователь не будет готов, использование всплывающего окна, безусловно, является самым простым методом.

Добавление что-то вроде следующего будет иметь желаемый результат:

Msgbox "Click to go on", , "Example" 

Пользователь должен нажать, чтобы продолжить или может попасть войти или пробел.

Если вам нужно более конкретное всплывающее окно, загрузка модальной пользовательской формы (в Excel) или модальной формы (в Access) из кода остановит приостановку вызывающего кода до тех пор, пока форма не будет закрыта.

Честно говоря, я бы сопротивлялся, включая паузу, если это абсолютно необходимо. Любое ненужное вмешательство - это раздражение и препятствие к эффективности. Если вы просто хотите сообщить пользователю о том, что происходит, вы можете обновить экран, чтобы объяснить, что делает код, когда он выполняет действия.

Смежные вопросы