用户窗体上的组合框就像一个下拉菜单,可用于从可用选项中选择一个选项。就像我们在工作表上使用数据验证创建的下拉菜单一样。

在大多数数字形式中,您必须至少看到一个组合框。可以从状态列表中选择一个状态,从课程列表中选择一个课程,从国家列表中选择一个国家,等等。在本文中,我们将学习如何在VBA用户窗体中添加组合框,如何用值初始化组合框,以及如何从组合框检索值。

将组合框添加到用户表单要将组合框添加到用户表单,首先需要具有一个用户表单。

啊!因此,使用CTRL + F11打开VBE。右键单击工作簿,转到以插入,然后单击“用户窗体”。您已添加用户表单。您可以在VBA`link:/ applications-word-outlook-in-vba-getting-started-with-excel-vba-userforms [here]中进一步了解用户表单。

image

现在,从工具箱中选择组合框。这是第一行的第四个选项。如果看不到工具箱。转到菜单中的查看,然后单击工具箱。工具箱将出现。

image

我添加了一个状态标签,因为此组合框将包含一些状态列表和一个提交表单的提交按钮。

如何在用户窗体中初始化组合框?这是大多数人犯错误的地方。有时,学习者会在组合框中编写用于加载值的代码,然后提交按钮。而且,当他们加载用户窗体时,组合框不会显示任何值。若要加载组合框,应在加载用户表单之前编写代码。这可以在模块,c或加载表单的按钮中完成。加载组合框列表的代码应位于formname.show命令之前。

在用户窗体调用子例程

中加载组合框假设我想在状态组合框中对某些数组进行硬编码。因此,我将编写一个子程序来加载用户表单以填充信息。请参见下面的代码。

Sub load_userform()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

UserForm1.Show

End Sub

我定义了一个数组“州”,其中包含一些印第安州的名称。

现在,我使用用户窗体名称访问组合框,因为组合框是用户窗体的一部分。

我的用户窗体的名称是userform1。并且combobox的名称是combobox1。这些是默认名称。您可以从属性窗口更改它们。

接下来,我使用状态初始化组合框的list属性。

然后,我使用show命令显示userform1。

当您运行上面的代码时,组合框将列出所有状态。

image

使用UserForm_Initialize()事件初始化组合框。

在用户窗体上加载组合框组件的另一种方法是使用用户窗体事件初始化。此事件在加载用户窗体之前运行。

在加载用户表单之前,您想做的任何事情都可以在这里完成。

这些事情之一就是加载组合框元素。因此,双击用户窗体以在用户窗体对象中打开编码区域。现在,从左侧的下拉菜单中选择用户窗体。然后从右侧的下拉菜单中选择初始化。

image

将插入一个空的子名称UserForm_Initialize()。该子程序中编写的任何内容都将在用户表单显示之前执行。

因此,我们在此处编写组合框的初始化代码。

Private Sub UserForm_Initialize()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

End Sub

请注意,这里没有userform1.show命令。它仍然在该模块中。该子项将用于在屏幕上显示我们的用户表单。

Sub load_userform()

UserForm1.Show

End Sub

因此,用户将使用某些命令,按钮或宏分配的元素运行load_userform子。编译器运行代码userform1.show命令时,它将立即运行useforma_initialize()事件。之后,它向用户显示用户表单。

注意:

如果您编写代码以在命令button1中单击值来初始化组合框,则组合框将不显示任何内容。

要使用值初始化组合框,请在用户到达要填充的组合框之前发生的任何事件中加载它。

从ComboBox检索值因此,我们使用表格来获取一些信息。为了使用该信息,我们需要检索它们。要从用户窗体组合框中获取任何值,我们使用combobox.value属性。通常,一旦用户完成表单并使用Submit按钮提交表单,我们就会从表单元素中检索值。因此,我们可以使用commandbutton_click事件。因此,如果还没有命令,请插入命令按钮并在其上编写提交。现在双击它,您将进入commandButton_click事件。

现在创建一个变量来存储值。如果愿意,可以将其保存在一张纸上。最后,使用“卸载我”命令退出表单。如下面的代码所示。

Private Sub CommandButton1_Click()

State = ComboBox1.Value

ThisWorkbook.Worksheets("sheet1").Range("A1") = State

Unload Me

End Sub

好的,这就是您在VBA用户窗体中使用组合框的方式。我希望我能说明问题并讲到重点。如果您对此主题有任何疑问或与VBA相关的任何其他疑问,请在下面的评论部分中问我。

相关文章:

Excel VBA UserForms入门 | *我将解释如何在excel中创建表单,如何使用VBA工具箱,如何处理用户输入,最后如何存储用户输入。我们将使用一个示例和逐步指南来逐步介绍这些主题。

`link:/ general-topics-in-vba-vba-variables-in-excel [Excel中的VBA变量] || * VBA代表Visual Basic for Applications。

它是Microsoft的一种编程语言。它与Microsoft Office应用程序(例如MSExcel,MS-Word和MS-Access)一起使用,而VBA变量是特定的关键字。

Excel VBA变量范围 | *在所有编程语言中,我们都有变量访问说明符,用于定义可从何处访问已定义变量。 Excel VBA也不例外。 VBA也具有范围说明符。

ByRef和ByVal参数当参数作为ByRef参数传递给其他子函数时,将发送实际变量的引用。对变量副本所做的任何更改都将反映在原始参数中。

在Microsoft Excel中使用VBA删除没有确认提示的工作表由于要使用VBA删除工作表,因此您知道自己在做什么。

您想告诉Excel不要显示此警告并删除该死的表。

在Microsoft Excel 2016中使用VBA添加和保存新工作簿] |在此代码中,我们首先创建了对工作簿对象的引用。然后,我们使用一个新的工作簿对象对其进行了初始化。这种方法的好处是您可以轻松地对此新工作簿进行操作。像保存,关闭,删除等一样,链接:/ menus-toolbars-status-bar-in-vba-在Microsoft Excel中使用vba-显示状态栏上的消息Excel VBA状态栏*]| excel中的状态栏可用作代码监视器。当您的VBA代码很长并且您使用VBA执行多项任务时,通常会禁用屏幕更新,以免看到屏幕闪烁。

`link:/ general-topics-in-vba-off-warning-messages-using-vba-in-microsoft-excel [在Microsoft Excel 2016中使用VBA关闭警告消息] | **此代码不仅禁用VBA警报,但也增加了代码的时间效率。让我们看看如何。

热门文章:

50 Excel快捷方式以提高生产率更快地完成任务。这50个快捷键将使您在Excel上的工作速度更快。

Excel中的VLOOKUP函数在Excel 2016中为COUNTIF使用此惊人的功能对条件进行计数。您无需过滤数据即可计算特定值。

Countif功能对于准备仪表板至关重要。

如何在Excel中使用SUMIF函数这是仪表板的另一个重要功能。这可以帮助您汇总特定条件下的值。