Пользовательская форма в Outlook не отвечает (не удается закрыть, событие нажатия кнопки не срабатывает)

StackOverflow https://stackoverflow.com/questions/886106

Вопрос

Я создал простую пользовательскую форму в моем макросе Outlook VBA - я могу сделать форму видимой, используя этот код:

VBA.UserForms.Add (PasswordForm.Name)
PasswordForm.Show (Modal)

...и тот UserForm_Initialize() Событие действительно срабатывает.Но нажатие на кнопку "Отправить" в форме ничего не делает - SubmitButton_Click() Событие (которое было автоматически создано двойным щелчком по кнопке в конструкторе) никогда не срабатывает.Кроме того, пользовательская форма имеет обычный маленький красный крестик в правом верхнем углу окна, но нажатие на него ничего не делает (форма не закрывается и не выходит).

Есть какие-нибудь идеи, что я, возможно, делаю не так?Я совсем новичок в VBA.

Это было полезно?

Решение 2

Хорошо, решено:Я изменился:

PasswordForm.Show (Modal)

Для

PasswordForm.Show

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

Спасибо всем за ваши предложения.

Другие советы

Иногда элементы управления в VBA отделяются от своих событий.Это может быть потому, что вы переименовали элемент управления или потому, что вы случайно переименовали процедуру события (хотя это редко может происходить по другим причинам).Кроме того, если вы забыли "скомпилировать" перед запуском формы, у вас может возникнуть ошибка в форме, которая вызывает проблему.

Самый простой способ перепроверить - открыть форму в режиме конструктора, выбрать соответствующую кнопку и нажать F7.Если создана новая процедура, скопируйте и вставьте свой код, затем просто скопируйте / вставьте в нее свой старый код и избавьтесь от старого.

После того, как вы это сделаете, перейдите в меню "Отладка" и нажмите "скомпилировать".Если будут обнаружены какие-либо ошибки, исправьте их и снова нажмите "Скомпилировать".Повторяйте до тех пор, пока он не скомпилируется без жалоб.Затем попробуйте запустить свою форму еще раз.

В Office 03/07, если вы хотите убедиться, что он отображается модально, установите .ShowModal поведение по отношению к "True".У меня были проблемы с попыткой сделать форму модальной во время события show.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top