Почему делает Показывание UserForm как Модальное Выполнение кода Остановки?

Я соглашаюсь с другими сообщениями:

  • встроенный может быть лишним, потому что компилятор сделает это
  • встроенный, может чрезмерно увеличить размер Вашего кода

, точка трети А - он, может вынудить Вас представить детали реализации в своих заголовках, .e.g.,

class OtherObject;

class Object {
public:
    void someFunc(OtherObject& otherObj) {
        otherObj.doIt(); // Yikes requires OtherObj declaration!
    }
};

Без встроенного предописание OtherObject было всем, в чем Вы нуждались. Со встроенным для Вашего заголовка нужно определение для OtherObject.

7
задан TylerH 1 February 2017 в 22:30
поделиться

2 ответа

Думаю, я понял это.

После Me.Show срабатывает событие UserForm_Activate. Если в процедуре UserForm_Activate нет кода, ничего не произойдет, потому что VBA ожидает Me.Hide .

Таким образом, порядок событий: Me.Show > UserForm_Activate > Me.Hide

Любой код, который я хочу запустить, должен быть в процедуре UserForm_Activate и должен быть перед Me.Hide .

Структура такова. очень строгий, но я могу использовать эту структуру в своих интересах.

2
ответ дан 6 December 2019 в 19:37
поделиться

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

Если вы обновите свойство формы

ShowModal = False

и удалите vbModal из вашего кода. Это позволит продолжить выполнение кода при отображении формы.

11
ответ дан 6 December 2019 в 19:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: