下面我们就来看看在Excel VBA程序,该程序会创建一个包含相关的组合框的用户窗体。用户窗体,我们要创建如下所示:

从下拉列表中的用户选择的动物。其结果是,用户可以选择从第二下拉列表动物。

Dependent Combo Boxes in Excel VBA

从下拉列表中的用户选择运动。其结果是,用户可以选择从第二下拉列表的运动。

Dependent Combo Boxes in Excel VBA

要创建这个用户窗体,请执行下列步骤。

1.打开Visual Basic编辑器。如果项目资源管理器中是不可见,单击视图,工程资源管理器。

2.单击插入,用户窗体。如果工具箱没有自动出现,单击视图,工具箱。您的屏幕应该设置如下。

Userform Screen Setup in Excel VBA

3.添加组合框(首先在左边,第二个在右)和命令按钮。一旦这个已经完成,其结果应与前面显示的用户窗体的图片一致。例如,创建通过点击组合框从工具箱组合框控件。

接下来,你可以在用户窗体拖动一个组合框。

4.您可以更改名称和控件的标题。名称在Excel的VBA代码中使用。标题是那些出现在屏幕上。这是改变控件的名称很好的做法,但在这里是没有必要的,因为我们只有几个控件在这个例子中。要更改用户窗体和命令按钮的标题,单击视图,属性窗口,然后点击每个控件。

5.要显示用户窗体,放置在您的工作表一个命令按钮并添加以下代码行:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

现在,我们要创建的子UserForm_Initialize。当您使用Show方法用于用户窗体,该子会被自动执行。

6.打开Visual Basic编辑器。

7.在项目资源管理器,右击UserForm1上,然后单击查看代码。

8.从左边的下拉列表中选择用户窗体。从右侧的下拉列表中选择初始化。

9.添加以下代码行:

Private Sub UserForm_Initialize()

With ComboBox1

.AddItem "Animals"

.AddItem "Sports"

.AddItem "Food"

End With

End Sub

说明:这行代码填写第一个组合框。

我们现在已经创建用户窗体的第一部分。虽然看起来已经整齐,什么都不会的时候,我们从第一个组合框中选择一个项目还没有发生。

10.在Project Explorer中,UserForm1上双击。

11.双击第一个组合框。

12.添加以下代码行:

Private Sub ComboBox1_Change()

Dim index As Integer

index = ComboBox1.ListIndex

ComboBox2.Clear

Select Case index

Case Is = 0

With ComboBox2

.AddItem "Dog"

.AddItem "Cat"

.AddItem "Horse"

End With

Case Is = 1

With ComboBox2

.AddItem "Tennis"

.AddItem "Swimming"

.AddItem "Basketball"

End With

Case Is = 2

With ComboBox2

.AddItem "Pancakes"

.AddItem "Pizza"

.AddItem "Chinese"

End With

End Select

End Sub

编程,以了解更多的选择事例结构。

13.双击导入按钮。

14.添加以下代码行:

Private Sub CommandButton1_Click()

Range("A1").Value = ComboBox2.Value

End Sub

结果:

Dependent Combo Boxes in Excel VBA