Добавление процедуры в модуль отменяет загрузку / показ пользовательской формы, для отображения которой необходимо дважды запустить show userform.

У меня есть пользовательская форма, которая отображает, какой столбец выбран перед запуском моего основного кода.
Чтобы динамически обновлять выбранный столбец, в случае, если при открытии с ленты выбран неправильный столбец, мне нужно иметь код в активном модуле рабочего листа.

Поскольку удаляет стек отмены (по крайней мере, мой), и у меня есть другой код, зависящий от , Я вставил в правильный модуль рабочего листа, пока отображается и удалите его во время .

Что меня удивило, так это то, что код:
как-то нарушает загрузку моего во время того же пробега.

Во-первых, он показывает VBE-редактор после добавления кода, даже когда VBE не открыт, что нехорошо. Во-вторых, он не отображает пользовательскую форму. Мои тесты говорят мне, что пользовательская форма загружена, но не отображается. Выполнение «frmSort.show vbModeless» в том же прогоне после «добавления процедуры» не работает.

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

Причина, по которой он работает при двойном запуске, заключается в том, что мой саб проверяет, существует ли процедура перед вставкой. Заставляя меня дважды нажать кнопку ленты и закрыть VBE, чтобы продолжить ...

Есть идеи, как действовать?

Я думал сначала открыть его как модальный, а затем скрыть и снова открыть как немодальный, но код:

      SelectionChangeOnOff ActiveSheet, True
frmSort.Show
Unload frmSort

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

0 ответов

Другие вопросы по тегам