小兔网

多选属性Excel中VBA允许用户选择列表框中的多个项目。我们将要创建的用户窗体如下所示:

Excel VBA中的多个列表框选择

要创建此用户窗体,请执行以下步骤。

1.打开Visual Basic编辑器如果“项目资源管理器”不可见,请单击“视图”,“项目资源管理器”。

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

Excel VBA中的用户窗体屏幕设置

3.添加列表框(左侧第一个,右侧第二个),命令按钮,复选框(左侧第一个,右侧第二个),框架和选项按钮(顶部第一个,下方第二个)第一个,依此类推)。完成此操作后,结果应与前面显示的用户窗体的图片一致。例如,通过在工具箱中单击列表框来创建列表框控件。接下来,您可以在用户窗体上拖动一个列表框。当到达“选择类型”框架时,请记住先绘制该框架,然后再将三个选项按钮放入其中。

4.您可以更改控件的名称和标题。在Excel VBA代码中使用名称。字幕是显示在屏幕上的字幕。更改控件的名称是一种很好的做法,但是此处没有必要,因为在此示例中,我们只有几个控件。要更改用户窗体,命令按钮,复选框,框架和选项按钮的标题,请单击“视图”,“属性窗口”,然后单击每个控件。

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

私人  CommandButton1_Click()

UserForm1.Show

End Sub

现在,我们将创建Sub UserForm_Initialize。当您对用户窗体使用Show方法时,此子项将自动执行。

6.打开Visual Basic编辑器

7.在Project Explorer中,右键单击UserForm1,然后单击“查看代码”。

8.首先,声明Integer类型的变量i。在“常规声明”部分(在代码顶部)声明变量。这样,您只需要声明一次变量,就可以在多个子变量中使用它们。

暗淡作为 整数

9.从左侧下拉列表中选择“用户表单”。从右侧的下拉列表中选择初始化。

10.添加以下代码行:

私人  UserForm_Initialize()

随着 ListBox1的
    .AddItem“销售”
    .AddItem“生产”
    .AddItem“物流”
    .AddItem“人力资源”
 随着

OptionButton3.Value = 

 

说明:第一个列表框将被填充,第三个选项按钮被设置为默认按钮。

现在,我们已经创建了用户表单的第一部分。尽管看起来已经很整洁,但是当我们单击命令按钮或其他控件时,什么也不会发生。

11.在Project Explorer中,双击UserForm1。

12.双击添加按钮。

13.添加以下代码行:

私人  CommandButton1_Click()

对于 I = 0 为了 ListBox1.ListCount - 1
    如果 ListBox1.Selected(I)=  。然后 ListBox2.AddItem ListBox1.List(ⅰ)
接着

结束 

说明:Excel VBA循环浏览第一个列表框(列表中第一项的列表索引号为零(0)),如果选中,则将该项添加到第二个列表框。

14.双击删除按钮。

15.添加以下代码行:

私人  CommandButton2_Click()

昏暗计数器作为整数
计数器= 0

对于 I = 0 为了 ListBox2.ListCount - 1
    如果 ListBox2.Selected(I -计数器)然后
        ListBox2.RemoveItem(I -计数器)
        计数器=计数+ 1
    结束 如果
下一页

CheckBox2 .Value = 错误

结束 

说明:Excel VBA循环浏览第二个列表框,如果选中,则将其删除。counter变量跟踪已删除项目的数量。

16.双击第一个选项按钮。

17.添加以下代码行:

私人  OptionButton1_Click()

ListBox1.MultiSelect = 0
ListBox2.MultiSelect = 0

End Sub

18.双击第二个选项按钮。

19.添加以下代码行:

私人  OptionButton2_Click()

ListBox1.MultiSelect = 1
ListBox2.MultiSelect = 1

End Sub

20.双击第三个选项按钮。

21.添加以下代码行:

私人  OptionButton3_Click()

ListBox1.MultiSelect = 2
ListBox2.MultiSelect = 2

结束 

说明:可以通过单击选项按钮来选择“选择类型”设置。前面显示的Userform图片提供了每个设置的描述。除了在运行时配置此设置之外,您还可以在设计时配置此设置。为此,请右键单击列表框控件,然后单击“属性”。将MultiSelect属性设置为0-fmMultiSelectSingle,1-fmMultiSelectMulti或2-fmMultiSelectExtented。

22.双击第一个复选框。

23.添加以下代码行:

私人  CheckBox1_Click()

如果 CheckBox1.Value =  然后
    对于 I = 0 为了 ListBox1.ListCount - 1
        ListBox1.Selected(ⅰ)=真
    接着
结束 如果

如果 CheckBox1.Value =  然后
    对于 I = 0  ListBox1.ListCount - 1
        ListBox1.Selected(ⅰ)= FALSE
    接着
结束 如果

结束 

说明:通过选中第一个复选框,可以选择/取消选择第一个列表框的所有项目。

24.双击第二个复选框以添加相同的代码行。仅将CheckBox1替换为CheckBox2,将ListBox1替换为ListBox2。