2015-07-11 7 views
2

Я пытаюсь сделать то, что написано на этом сайте www.excel-easy.com, но когда я нажимаю на commandbutton (с элементов управления ActiveX) на рабочем листе точно так же, как то, что веб-сайт дал указание, ничего не происходит. Я пытался использовать кнопку из элементов формы, но он говорит, что ошибка в этом ---> DinnerPlannerUserForm.ShowОшибка выполнения 424 Требуемый объект UserForm не существует

Мой код:

Sub Button2_Click() 
    DinnerPlannerUserForm.Show 
End Sub 

Когда я использовал F8, то говорит ошибка здесь ->Private Sub UserForm_Initialize()

Private Sub UserForm_Initialize() 

    'Empty NameTextBox 
    NameTextBox.Value = "" 

    'Empty PhoneTextBox 
    PhoneTextBox.Value = "" 

    'Empty CityListBox 
    CityListBox.Clear 

    'Fill CityListBox 
    With CityListBox 
     .AddItem "San Francisco" 
     .AddItem "Oakland" 
     .AddItem "Richmond" 
    End With 

    'Empty DinnerComboBox 
    DinnerComboBox.Clear 

    'Fill DinnerComboBox 
    With DinnerComboBox 
     .AddItem "Italian" 
     .AddItem "Chinese" 
     .AddItem "Frites and Meat" 
    End With 

    'Uncheck DataCheckBoxes 
    DateCheckBox1.Value = False 
    DateCheckBox2.Value = False 
    DateCheckBox3.Value = False 

    'Set no car as default 
    CarOptionButton2.Value = True 

    'Empty MoneyTextBox 
    MoneyTextBox.Value = "" 

    'Set Focus on NameTextBox 
    NameTextBox.SetFocus 

End Sub 
+0

Попробуйте добавить «UserForm» - в редакторе Visual Basic нажмите кнопку «Вставить пользовательскую форму» (или перейдите в «Вставка»> «Пользовательская форма»). – 0m3r

+0

В моем случае отладчик выделил строку UserForm.Show, но проблема была в процедуре Userform_Initialize() , У меня была строка кода, не связанная с UserForm, где я не смог объявить объект. Пределы отладчика VBA могут отбросить ваш поиск ошибки. – PhillipOReilly

ответ

0

Трудно сказать, основываясь на том, что вы сказали. Но - тот факт, что вы сказали, используя F8, указал, что ошибка в Private Sub UserForm_Initialize() предполагает, что пользовательская форма существует, и VBA знает, как ее найти (иначе ее событие инициализации не будет срабатывать при нажатии кнопки формы). Следовательно, это одна из строк в инициализации sub, которая является виновником. Какая строка специально отмечена? Я предполагаю, что проблема с простой опечаткой во имя одного из элементов управления (например, DinnerComboBox).

0

Я предполагаю, что этот вопрос был решен, но для тех, кто сейчас смотрит на него. У меня была эта проблема, и оказалось, что я удалил ComboBox из моей формы, но в коде все еще упоминалось. Как только я удалил этот раздел кода, он работал красиво.

0

я был в состоянии решить эти путем изменения

Private Sub UserForm_Initialize() 

в

Private Sub DinnerPlannerUserForm_Initialize() 

Смотрите, если он работает

1

Эта ошибка может также возникнуть при удалении или удалить текстовое поле из вашей формы , но забудьте удалить его из строки инициализации, например:

Private Sub UserForm_Initialize() 
    CommandButton2.Enabled = False 
    TextBox4.Enabled = False 'textbox deleted from form 
End sub 
0

Я использовал тот же учебник и решить эту проблему, изменив команду Инициализировать:

Оно дано как

Private Sub UserForm_Initialize() 

Я назвал свою пользовательскую форму (для моих собственных целей)

StdTimeCalculatorForm 

и изменения кода в

Private Sub StdTimeCalculatorForm_Initialize() 

решил проблему. Надеюсь это поможет.

Смежные вопросы