image

在本文中,将学习VBA用户窗体的基础。我将解释如何在excel中创建表单,如何使用VBA工具箱,如何处理用户输入以及最后如何存储用户输入。我们将使用一个示例和逐步指南来逐步介绍这些主题。如果您正在阅读本文,那么我想您应该了解Excel VBA的基础知识。

不用再拖延了,让我们开始吧。

在Excel中创建投资表单并存储记录

我们将从设计用户表单开始。在此用户窗体中,我们将有一个文本框用于名称,一个文本框用于年龄,一个文本框用于投资金额,以及一对单选按钮以表示性别。让我们开始吧。

设计用户表单

使用ALT + F11快捷方式在excel中打开Visual Basic编辑器。在“项目”框中,右键单击VBAProject(您的文件)。在插入选项中,选择“用户窗体”。随即,将创建一个新文件夹,并在其中找到您的用户表单。该项目的所有用户表单都将添加到此文件夹中。

在属性框中*将表单名称更改为InvestmentForm。

在表单中添加元素:在上图中,我已经添加了元素(标签,文本框,命令按钮)。但是,新的用户窗体是完全空白的。您需要使用工具箱将元素添加到窗体中。如果看不到工具箱,请从“视图*”选项卡获取它。

名称元素*:文本框,标签,按钮等都是元素。

为了在VBA代码中使用它们,我们需要给它们命名。我们使用属性窗口更改其名称。选择元素。在这里,我选择名称的文本框。转到属性窗口,然后将名称更改为“ NameBox *”。对要使用的每个元素执行相同的操作。 (您无需命名标签,除非您希望它们是可点击的。

image

我已将下表中的元素重命名,并将使用这些名称来引用它们。您可以使用其他名称。只需将这些名称替换为您的名字即可。这些是将在代码中使用的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

向用户显示用户表单:现在已经准备好表单,让我们向用户显示。但是,等等,我该怎么做。工作表上没有选项可以调用用户表单。实际上,用户表单需要触发。它本身无法显示。您可以使用命令按钮,子例程或事件使表格在屏幕上弹出。

在这里,我将使用命令按钮来触发用户表单。

  • 在工作表上,转到“开发人员”标签?插入?按钮(窗体控件)。

重命名为开放表单。

  • 右键单击它。单击分配宏,然后单击新建。

image

将立即创建一个子。现在将此行添加到该子项。

Sub Open_Form()

'Opening form

InvestmentForm.Show

End Sub

完成了返回到该工作表,然后单击按钮。用户表格将会弹出。

image

使用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”关闭表单。

image

使用“取消”命令关闭表单。目前,取消按钮是没有用的。它什么也没做。如果要中止输入,可以使用取消按钮。在这种情况下:*在VBA编辑器中双击“取消命令”按钮。将创建一个新的子。只需编写此行代码即可关闭用户表单。

Private Sub CancelButton_Click()

'Closing form

Unload Me

End Sub

最终,表单代码将如下所示。

image

就是这样。这就是您使用excel vba用户窗体从用户那里获取输入的方法。在本文中,我们只是探讨了用户窗体的基本用法,以便您熟悉它。如果您具有基本的vba知识,这很简单。

在以后的文章中,我们将探讨Excel中vba用户窗体的更多高级功能。我们将在excel中创建用户表单,以完成更多工作。

我们将探索vba用户格式可用的不同工具和元素。

然后练习。您可以根据需要下载此文件以供参考。

是的,伙计们,这是一个小型简单的用户指南。我希望它是足智多谋的。如果您对此有任何疑问,请告诉我,请在下面的评论部分中告诉我。

相关文章

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

热门文章:

link:/ vlookup-functions的公式和函数介绍[Excel中的VLOOKUP函数]