Кнопка команды VBA для открытия Userform возвращает ошибку 1004 - PullRequest
0 голосов
/ 06 ноября 2019

В проекте Excel у меня есть лист с данными, пользовательская форма, которая рисует данные из этого листа, и лист для вставки данных пользовательской формы.

Я создал кнопку в листе данных, которая следует открыть форму пользователя. Для справки имя моей пользовательской формы - UserForm1. Я получаю ошибку 424 Object required, когда нажимаю на кнопку команды. Буду признателен за любую помощь или разъяснение, кажется, что мои классы / экземпляры перепутаны?

Код ниже:

Private Sub blocksSorter_Click()
     Load UserForm
     UserForm.Show
End Sub

Сама форма находится в том же проекте VBA и является единственнойФорма в проекте. Мой код UserForm1 выглядит в целом так:

Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    code
End Sub

Private Sub UserForm_Initialize()
    code
End Sub

Форма будет отображаться только в том случае, если я это сделаю, и изменит мои подпрограммы UserCode на UserForm1 с UserForm.

Private Sub blocksSorter_Click()
     Load UserForm1
     UserForm1.Show
End Sub

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Запустите новый проект VBA.

Добавьте форму.

Назовите форму frmOne

Дважды щелкните форму и добавьте MsgBox "Hello" к этому событию. .

Добавьте еще одну форму.

Назовите эту форму frmTwo

Дважды щелкните по второй форме и добавьте frmOne.Show к этому событию.

Запустите вторую форму и нажмите на нее, она должна открыть frmOne. Затем нажмите на frmOne, и появится сообщение msgbox.

Обратите внимание, что в каждой форме есть подпрограмма с именем UserForm_Click(), но они разные. Это поможет прояснить ситуацию? Я не уверен, как еще тебе это объяснить.

0 голосов
/ 06 ноября 2019

Несмотря на то, что мое имя формы - UserForm1, у меня была подпись, как у чего-то другого. С помощью braX у меня есть следующее:

Private Sub blocksSorter_Click()
     Load UserForm1
     UserForm1.Show
End Sub

Мои свойства формы теперь следующие:

Name: UserForm1
Caption: UserForm1

Мой код пользовательской формы остается прежним.

...