在 VBA 上创建用户窗体

Creating UserForm on VBA

我正在按照在此网站上创建用户表单的确切步骤进行操作 http://www.excel-easy.com/vba/userform.html。我已按照所有步骤操作,但无法正常工作。

错误请看图片。

当我粘贴这段代码时。

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

这段代码会有错误

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

请先看website

似乎是:

  • 您没有将 UserForm1 重命名为 DinnerPlannerUserForm,或者
  • 您没有重命名初始化代码中提到的控件之一,或者
  • 你从来没有打过这样的电话
    Set MyDinnerPlanner = New DinnerPlannerUserForm
    (引用对象的变量以 Null 开头;在您可以使用它们之前,它们需要在某个时候成为 SetNew 实例。)

如果您单击 "Object required" 错误对话框的 "Debug" 命令按钮,VBA IDE 将带您到一行代码。该行代码可能包含
形式的语句 <ObjectInstanceName>.<MethodName>(<parameters>)
<ObjectInstanceName>.<PropertyName> = <Value>.
"Object required" 错误告诉您 VBA 无法识别 <ObjectInstanceName><ObjectInstanceName> Is Null.

您的某个控件未正确命名。将 Option Explicit 添加到代码模块的顶部通常可以让您及早发现此类错误。