Открытие немодальной формы во время выполнения - VBA Excel - PullRequest
0 голосов
/ 25 июня 2018

Я попытаюсь объяснить ситуацию:

У меня есть форма, которая сгенерирована и разработана программно.

Итак, у меня есть объект, экземпляр которого имеет эту форму: объект " NewForm"

В какой-то момент мне нужно показать эту форму.Поэтому я должен добавить объект NewForm в виде формы:

VBA.UserForms.Add (NewForm.Name)

, а затем показать форму,

UserForms(0).Hide
UserForms(0).Show

Проблема в том, что мне нужно показать немодальную форму, поэтому обычнобудет достаточно простого

UserForms(0).Hide
UserForms(0).Show vbModeless

.Однако, когда я использую эту последнюю строку кода, форма появляется и внезапно исчезает.

Я также пытался установить свойство ShowModal как False, но у меня тот же результат.

Заранее спасибо,

С наилучшими пожеланиями

ПРИМЕЧАНИЕ. Я пытался использовать NewForm.Name.Show, и он не работает, поэтому я должен использоватьКоллекция вместо.

1 Ответ

0 голосов
/ 25 июня 2018

Зависит от того, как вы выполняете код.Я попробовал очень простой тест, создав фиктивную форму с именем NewForm, внутри которой ничего не было, и выполнил следующий код из окна Immediate редактора VB:

Sub test_NewFrom()
    Dim mForm As NewForm
    Set mForm = New NewForm
    mForm.Show (vbModeless)
End Sub

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

...