here”。

用户表单可以具有多个不同的输入组件。

这些组件称为用户窗体控件。

有几种类型的用户窗体控件,每种控件具有不同的属性,并且出于不同的原因而使用。知道如何以及何时使用每种类型的用户窗体控件很有用。在本文中,我们将学习如何在Excel VBA中使用UserForm Control。

UserForms控件的类型

VBA中的用户窗体控件太多。如果我们涵盖它们,在本文中,我们将仅关注主要的表单控件。

1:标签

2:文本框

3:组合框

4:列表框

5:复选框

6:OptionButton

7:ToggleButton

8:CommandButton

9:框架

让我们看一下所有这些控件。

标签:

标签仅用于显示文本标签。就像输入区域的标签,警告,方向等。

image

要将标签添加到用户窗体,只需从工具箱中选择“标签”选项(A图标)。光标将变为加号。拖到要放置标签的区域。

TextBox:

文本框是用户的基本开放式输入选项。用户可以简单地输入他想提供的输入。基本方案是名称输入。

image

如果要在鼠标悬停在文本框上时显示一些消息,请在属性窗口的ControlTipText中编写该消息。

image

ComboBox:

单击时,组合框用于显示项目列表。用户可以轻松地从该列表中选择任何显示的项目,也可以自己键入输入。

当我们有一个供用户选择的可选列表时,我们在Excel VBA中使用ComboBox。用户可以从列表中选择或手动输入答案。

image

从工具箱中选择组合框,然后在窗体上拖动。它将立即在表格上插入一个组合框。 combox的默认名称将为Combobox1、2、3等。您可以在属性框中进行更改。

image

如何在ComboBox中插入项目?

因此,现在您已将组合框添加到我们的表单中。但是,当我们加载用户窗体时,它在组合框中没有显示任何内容。这是因为我们尚未向组合框添加任何项目。

在此示例中,我想在用户窗体初始化(加载)时将项目添加到组合框。因此,我们将甚至使用“初始化”用户窗体。

右键单击用户窗体(而不是任何组件)以选择整个用户窗体。选择查看代码。

image

,选择初始化。

image

现在,使用ComboBox Class的AddItem属性,并添加任意数量的项。

Private Sub UserForm_Initialize()

ComboBox1.AddItem "2016"

ComboBox1.AddItem "2017"

ComboBox1.AddItem "2018"

ComboBox1.AddItem "2019"

ComboBox1.AddItem "2020"

End Sub

由于我们要在UserForm_Initialize()事件中添加项目,因此在加载用户表单时,所有项目都将添加到组合框中。

image

从组合框

中检索选定的项目要使用组合框中的选定项目,我们只需使用ComboBox的Value属性即可。

Private Sub CommandButton1_Click()

MsgBox ComboBox1.Value

End Sub

这里显示的是用户单击命令按钮时选择的值(我们将获得下面的命令按钮单击事件)。

image

列表框

当我们希望用户从定义的列表中进行选择时,将使用ListBox。

听起来类似于ComboBox?是的,列表框与ComboBox非常相似,不同之处在于用户无法在列表框中键入答案。

他们仅需从可用选项中进行选择。

要在表单中插入列表框,请从工具框中选择它,然后在表单区域上拖动。

列表框的默认名称通常为listbox1、2、3等。

您可以从属性框中更改它。

image

就像ComboBox一样,VBA列表框最初是空白的。要初始化它,我们只需使用listbox类的add属性。

如何将项目添加到列表框?

当我们在表单的初始化事件中将项目添加到组合框列表时,我们将在同一事件中添加列表框的项目。只需编辑上面的initialize事件以在加载用户窗体时添加项目。

Private Sub UserForm_Initialize()

ComboBox1.AddItem "2016"

ComboBox1.AddItem "2017"

ComboBox1.AddItem "2018"

ComboBox1.AddItem "2019"

ComboBox1.AddItem "2020"

'Adding Item to List

ListBox1.AddItem "Jan"

ListBox1.AddItem "Feb"

ListBox1.AddItem "Mar"

ListBox1.AddItem "Apr"

ListBox1.AddItem "May"

ListBox1.AddItem "Jun"

ListBox1.AddItem "Jul"

ListBox1.AddItem "Aug"

ListBox1.AddItem "Sep"

ListBox1.AddItem "Oct"

ListBox1.AddItem "Nov"

ListBox1.AddItem "Dec"

End Sub

上面的代码将在加载表单后立即将月份的名称添加到列表框中。

image

从列表框中检索所选项目

要检索用户在ListBox中选择的项目,我们使用listbox对象的Value属性。

在这里,我们将用户选择的月份添加到组合框中提供的输入中。

Private Sub CommandButton1_Click()

MsgBox ComboBox1.Value & "-" & ListBox1.Value

End Sub

image

当单击命令按钮时,我们在msgbox中显示了选定的项目。

image

CheckBox VBA控件

CheckBoxes是可以设置为True或False的二进制控件。

您可以具有多个复选框,并一次选择多个复选框。基本上,这在用户需要能够选择多个选项时使用。喜欢多项选择题。

要将复选框添加到用户窗体,只需从工具框中选择它,然后在VBA用户窗体区域上拖动即可。

image

当您将复选框添加到用户窗体时,复选框的默认名称为checkbox1,checkbox2等。您可以从属性框中更改复选框的名称。

如何使用用户窗体上的复选框?

添加复选框后,它们便可以单击。用户可以选中或取消选中它们。但是,我们如何知道选中了哪个复选框却没有选中呢?

就像我说的,复选框是布尔型的。因此,如果选中一个复选框,则其值为True,否则为False。

下面的代码检查选中了哪些复选框,并将其显示在“消息”框中。

Private Sub CommandButton1_Click()

Dim msg As String

If CheckBox1.Value = True Then

msg = msg & "CheckBox1 is selected"

End If

If CheckBox2.Value = True Then

msg = msg & vbCrLf & "CheckBox2 is selected"

End If

MsgBox msg

End Sub

image

如果您希望用户只能在用户表单上选择一个选项,请使用单选按钮。

OptionButton VBA控件

当我们希望用户从可用选项中仅​​选择一个选项时,在VBA用户窗体中使用单选/选项按钮。例如当表格询问性别,偏好的语言,年龄段等时

通过从工具中选择单选按钮并在表单区域上拖动,可以轻松地将单选按钮添加到用户表单。多次将单选按钮拖放到多个单选按钮中。

image

如何选择单选/选项按钮?

单选按钮为二进制。它们的值可以为True或False。

所选单选按钮将设置为True,所有其他按钮将变为false。一次只有一个单选按钮在组中为真。

下面的代码仅检查选中了哪个单选按钮,并相应地显示该消息。

Private Sub CommandButton1_Click()

Dim gender As String

If OptionButton1.Value = True Then

gender = "Male"

ElseIf OptionButton2.Value = True Then

gender = "female"

Else

gender = "other"

End If

MsgBox gender

End Sub

image

请注意,在上面的示例中,用户表单上只能选择一个选项按钮。但是,如果您要具有多组选项按钮怎么办。在这种情况下,我们使用框架。这使我们进入…

VBA用户窗体中的框架

框架用于将用户形式的对象分组,例如复选框和选项按钮。

要使用框架,请首先将该框架拖放到表单区域,然后将其他对象拖放到该框架中。

image

您可以从属性框中的标题更改框架的名称。

image

所有事件也可以作为其他用户窗体对象用于框架。但最好只用它们对对象进行分组。您可以在fram上设置onclick事件,以在单击时为其中的对象加载一些基本信息。

VBA用户窗体中的切换按钮

切换按钮也是可以设置为打开和关闭的二进制对象。您可以使用切换按钮来打开和关闭某些内容。

要将切换按钮添加到用户窗体,只需从工具中选择它并在窗体区域上拖动即可。

image

以下代码是在切换按钮的onclick事件上设置的。按下切换按钮时,它将单元格A1的颜色更改为蓝色,按下切换按钮时,将其重置。

Private Sub ToggleButton1_Click()

If ToggleButton1.Value Then

Range("A1").Interior.ColorIndex = 32

Else

Range("A1").Interior.ColorIndex = xlColorIndexNone

End If

End Sub

VBA用户窗体中的命令按钮

这些是我们用于执行主要VBA代码的按钮,例如验证,计算,表单提交等。

在以上示例中,我使用了命令按钮来提交表单。您可以根据需要在用户窗体上具有任意数量的命令按钮。

image

要在单击按钮时执行代码,只需双击按钮即可。它将打开CommandButton_Click事件。在此处编写代码,单击命令按钮即可执行。

image

单击完成的命令按钮时,以下代码将运行,并且还将关闭用户窗体。

Private Sub CommandButton1_Click()

Dim gender As String

If OptionButton1.Value = True Then

gender = "Male"

ElseIf OptionButton2.Value = True Then

gender = "female"

Else

gender = "other"

End If

MsgBox gender

Unload UserForm1 'closes userform

End Sub

是的,这些是VBA中的基本用户窗体控件。希望对您有所帮助。如果您对用户窗体控件和用户窗体事件有任何疑问,请在下面的注释部分中写下来。

相关文章

Excel VBA UserForms入门Change在Excel中使用VBA的多个UserForm控件的值/内容要更改用户窗体控件的内容,请使用此简单的VBA代码段。

当用户单击在Microsoft Excel中使用vba的x按钮时,`link:/ user-forms-input-boxes在vba中防止关闭的用户窗体[通过在Excel中使用VBA防止用户单击x按钮时关闭用户窗体。为了防止用户单击表单的x按钮时关闭用户窗体,我们使用UserForm_QueryClose事件。

热门文章:

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

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

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

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