VBA组合框|如何在VBA中创建和使用ComboBox?

Excel VBA组合框

ComboBox是VBA中的用户表单功能,它们不同于文本框,因为文本框仅用于包含文本,并且我们允许用户输入任何类型的数据,但是通过使用组合框,我们限制了用户所需的响应类型,因此数据是有序的,它类似于excel中的列表数据验证。

可以将ComboBox与excel中的下拉列表进行比较,在工作表中,我们使用了数据验证来提供下拉菜单,但是在VBA中,有一个用户表单功能,用于在任何用户表单中提供下拉菜单,但是如果要在excel中使用组合框,也可以从开发人员部分访问该组合框,我们可以为单个或多个单元格创建组合框。

组合框与excel工作表中的下拉列表非常相似,通过组合框,我们可以存储预定值,以便用户可以从组合框的列表中进行选择。组合框通常与用户表单一起使用,作为从用户获取输入的一部分。

用户表单很有用,但是在用户表单上拥有其他工具才是使用户表单如此特别的原因。我们经常用作用户表单工具的工具之一是“ ComboBox”。

创建VBA组合框的2种主要方法

您可以在此处下载此VBA组合框Excel模板– VBA组合框Excel模板

#1 –使用直接编码

首先,我们将了解如何在工作表中使用组合框。打开excel工作簿中的任何工作表,转到“开发人员”选项卡,在此选项卡下,我们有一个名为“插入”的工具。单击此按钮,在此菜单下,我们在excel中有两个选项“ Active X控件”和“表单控件”。

从“ Active X控件”中选择“组合框”。

现在,您可以在任何工作表上绘制该对象。

右键单击组合框,然后选择“属性”选项。

当您选择属性时,它将打开一个组合框的巨大属性列表。

对于此组合框,我们将提供部门名称列表,因此将组合框的name属性更改为“ DeptComboBox”.

现在,该组合框将以名称命名 “ DeptComboBox”。我们需要提供预定的部门名称,因此这里有部门名称列表。

现在我们需要将这些值添加到组合框列表中,我们可以通过两种方式(通过编码或通过名称管理器)来完成此操作。

双击组合框,它将带您进入VBA宏过程。

但是,当工作簿打开时,我们需要查看这些部门名称,因此双击“ ThisWorkbook”。

从下拉列表中选择“工作簿”。

从选项中选择“打开”。

现在,它将创建一个类似于以下内容的空白。

在此宏中输入以下代码。

代码:

 带有工作表(“ Sheet1”)。DeptComboBox的Private Sub Workbook_Open()。AddItem“ Finance” .AddItem“ Marketing” .AddItem“ Merchandising” .AddItem“ Operations” .AddItem“ Audit” .AddItem“ Client Servicing”结束于结束子 

好的,现在保存并关闭工作簿,当您重新打开工作簿时,我们可以在其中看到部门名称。

#2 –使用用户窗体

将值添加到ComboBox的另一种方法是使用用户窗体。首先,给单元格命名为“部门”。

转到Visual Basic编辑器,然后从INSERT选项中插入用户窗体。

现在,将创建新的用户表单。

在用户表单旁边,我们可以在该工具箱中看到“工具箱”,可以插入“组合框”。

现在,组合框已嵌入到用户窗体中,以这种方法打开属性选项,选择组合框,然后按F4键打开属性窗口。

向下滚动属性选项卡,然后选择“行源”。

对于此“行来源”,请输入我们为部门名称单元格指定的名称。

现在,此组合框包含名称的引用 “部”.

现在,使用“运行”按钮运行用户表单。

现在,我们可以在用户窗体的组合框中看到部门名称列表。

实际上是与组合框,文本框和许多其他工具关联的用户表单。我们将创建一个带有文本框和组合框的简单数据输入用户表单。

创建一个如下所示的用户表单。

创建两个命令按钮。

双击“提交”按钮,它将在宏下面打开。

在此宏内,添加以下代码。

代码:

 私有子CommandButton1_Click()Dim LR只要Long LR = Cells(Rows.Count,1).End(xlUp).Row + 1 Cells(LR,1).Value = TextBox1.Value Cells(LR,2).Value = ComboBox1 .Value结束子 

现在,双击“取消”按钮并添加以下代码。

现在,在工作表中创建如下所示的模板。

现在运行用户表单,它会像这样打开。

输入员工名称,然后从组合列表中选择部门名称。

单击“提交”按钮并查看魔术。

我们以创建的表格格式输入了值。

要记住的事情

  • COMBO BOX也具有自己的属性。
  • 将值添加到列表有两种方式,一种是编码方式,另一种是范围名称引用。
  • COMBO BOX通常是用户表单的一部分。