Как приостановить код с помощью пользовательской формы

поэтому в основном мне нужно приостановить код макроса, дождаться ввода пользователя, а затем продолжить остальную часть кода. Я знаю, что это можно сделать с помощью «немодальной пользовательской формы». Но теперь дело в том, что весь код после появления пользовательской формы нужно было написать в части командной кнопки (в основном это собственный модуль пользовательской формы). И из-за этого вся инициализация, все переменные, которые мне все еще нужны, были стерты.

Поэтому я спрашиваю, есть ли способ сделать паузу в середине кода vba, затем дождаться ввода пользователя, а затем продолжить остальную часть кода

Большое спасибо за Вашу помощь


person Thomas Dang    schedule 01.08.2013    source источник


Ответы (1)


Что вы подразумеваете под "вводом данных пользователем"?

  • Стандартные методы ввода, такие как MsgBox, InputBox или модальные пользовательские формы, делают то, что вы просите;

"код после появления пользовательской формы, необходимый для"...

  • Вместо того, чтобы закрывать форму, скройте ее. Код продолжается, и данные формы все еще доступны;

Теперь, если вы подразумеваете под "вводом данных пользователем" манипулирование рабочей книгой, вы должны перейти к событиям:

  • Пример. Создайте макрос перед вводом данных пользователем, а затем поместите оставшийся код в событие Worksheet_Change.
person LS_ᴅᴇᴠ    schedule 01.08.2013
comment
Это означает второй, чтобы манипулировать рабочей книгой, помещать в столбец, добавлять новые рабочие книги и тому подобное. Я понимаю, что вы хотите разделить код на 2 части, но дело в том, что все переменные, все значения должны быть объявлены снова или сдвинуты первой частью. Более того, вам нужно запустить 2 макроса вместо 1, что не совсем хорошо для автоматизации. И если есть еще часть, которую нужно приостановить, потребуется больше кода. - person Thomas Dang; 01.08.2013
comment
Это также вопрос парадигмы: VBA — это язык, управляемый событиями. Имейте это в виду! Иначе как бы вы контролировали действия пользователей? Представьте, что пользователь удаляет лист с вашим кодом,... - person LS_ᴅᴇᴠ; 01.08.2013