入门使用Excel VBA用户窗体
在本文中,将学习VBA用户窗体的基础。我将解释如何在excel中创建表单,如何使用VBA工具箱,如何处理用户输入以及最后如何存储用户输入。我们将使用一个示例和逐步指南来逐步介绍这些主题。如果您正在阅读本文,那么我想您应该了解Excel VBA的基础知识。
不用再拖延了,让我们开始吧。
在Excel中创建投资表单并存储记录
我们将从设计用户表单开始。在此用户窗体中,我们将有一个文本框用于名称,一个文本框用于年龄,一个文本框用于投资金额,以及一对单选按钮以表示性别。让我们开始吧。
设计用户表单
使用ALT + F11快捷方式在excel中打开Visual Basic编辑器。在“项目”框中,右键单击VBAProject(您的文件)。在插入选项中,选择“用户窗体”。随即,将创建一个新文件夹,并在其中找到您的用户表单。该项目的所有用户表单都将添加到此文件夹中。
在属性框中*将表单名称更改为InvestmentForm。
在表单中添加元素:在上图中,我已经添加了元素(标签,文本框,命令按钮)。但是,新的用户窗体是完全空白的。您需要使用工具箱将元素添加到窗体中。如果看不到工具箱,请从“视图*”选项卡获取它。
名称元素*:文本框,标签,按钮等都是元素。
为了在VBA代码中使用它们,我们需要给它们命名。我们使用属性窗口更改其名称。选择元素。在这里,我选择名称的文本框。转到属性窗口,然后将名称更改为“ NameBox *”。对要使用的每个元素执行相同的操作。 (您无需命名标签,除非您希望它们是可点击的。)
我已将下表中的元素重命名,并将使用这些名称来引用它们。您可以使用其他名称。只需将这些名称替换为您的名字即可。这些是将在代码中使用的VBA名称(代码名称)。它们不会反映在表单上。
您在标签和按钮上看到的文本是“标题”。如果需要,元素的名称和标题可以相同。
Element |
Rename |
Name Text Box |
NameBox |
Age Text Box |
AgeBox |
Male Option Button |
MaleOption |
Female Option Button |
FemaleOption |
Investment Text Box |
InvestBox |
Submit Command Button |
SubmitButton |
Cancel Command Button |
CancelButton |
向用户显示用户表单:现在已经准备好表单,让我们向用户显示。但是,等等,我该怎么做。工作表上没有选项可以调用用户表单。实际上,用户表单需要触发。它本身无法显示。您可以使用命令按钮,子例程或事件使表格在屏幕上弹出。
在这里,我将使用命令按钮来触发用户表单。
-
在工作表上,转到“开发人员”标签?插入?按钮(窗体控件)。
重命名为开放表单。
-
右键单击它。单击分配宏,然后单击新建。
将立即创建一个子。现在将此行添加到该子项。
Sub Open_Form() 'Opening form InvestmentForm.Show End Sub
完成了返回到该工作表,然后单击按钮。用户表格将会弹出。
使用VBA用户表单填写表单:单击命令按钮(打开表单)后,表单会弹出。现在您可以填写表格。但是,当我们单击“提交”按钮时,应该已经在此表上输入了数据,但是没有任何反应。因为我们还没有为此编写任何vba指令。我们需要将用户表单数据存储到工作表中。返回到VBA,然后双击“提交”按钮。将自动创建一个新的子项。此子项嵌入在表单中,您无法在任何模块中找到它。表单的每个元素都相同。
-
在此子程序中编写此vba代码。
Private Sub SubmitButton_Click() Sheet1.Activate 'get first empty row on sheet (read about it here) lstrow = Cells(Rows.Count, 1).End(xlUp).Row Set firstEmptyRow = Range("A" & lstrow + 1) 'initialize each cell with data firstEmptyRow.Offset(0, 0).Value = nameBox.Value 'first cell firstEmptyRow.Offset(0, 1).Value = AgeBox.Value 'first cell to the right firstEmptyRow.Offset(0, 3).Value = InvestBox.Value 'third cell to the right 'checking radio button If MaleOption.Value = True Then firstEmptyRow.Offset(0, 2).Value = "Male" 'second cell to the right Else firstEmptyRow.Offset(0, 2).Value = "Female" 'second cell to the right End If 'Closing form Unload Me End Sub
单击提交按钮时,将运行以上VBA代码片段。它会在工作表中找到第一个空行,并用表格中提供的值填充它。最后,使用命令“ Unload Me”关闭表单。
使用“取消”命令关闭表单。目前,取消按钮是没有用的。它什么也没做。如果要中止输入,可以使用取消按钮。在这种情况下:*在VBA编辑器中双击“取消命令”按钮。将创建一个新的子。只需编写此行代码即可关闭用户表单。
Private Sub CancelButton_Click() 'Closing form Unload Me End Sub
最终,表单代码将如下所示。
就是这样。这就是您使用excel vba用户窗体从用户那里获取输入的方法。在本文中,我们只是探讨了用户窗体的基本用法,以便您熟悉它。如果您具有基本的vba知识,这很简单。
在以后的文章中,我们将探讨Excel中vba用户窗体的更多高级功能。我们将在excel中创建用户表单,以完成更多工作。
我们将探索vba用户格式可用的不同工具和元素。
然后练习。您可以根据需要下载此文件以供参考。
是的,伙计们,这是一个小型简单的用户指南。我希望它是足智多谋的。如果您对此有任何疑问,请告诉我,请在下面的评论部分中告诉我。
相关文章
当用户单击在Microsoft Excel中使用vba的x按钮时,`link:/ user-forms-input-boxes在vba中防止关闭的用户窗体[通过在Excel中使用VBA防止用户单击x按钮时关闭用户窗体。]