小兔网

添加控件   |  显示用户表格   |  分配宏   |  测试用户表单

本章教您如何创建Excel VBA用户窗体我们将要创建的用户窗体如下所示:

Excel VBA用户表单

添加控件

要将控件添加到用户窗体,请执行以下步骤。

1.打开Visual Basic编辑器如果“项目资源管理器”不可见,请单击“视图”,“项目资源管理器”。

2.单击插入,用户窗体。如果“工具箱”没有自动出现,请单击“视图”,“工具箱”。屏幕设置如下。

Excel VBA中的用户窗体屏幕设置

3.添加下表中列出的控件。完成此操作后,结果应与前面显示的用户窗体的图片一致。例如,通过在工具箱中单击TextBox创建一个文本框控件。接下来,您可以在用户窗体上拖动一个文本框。到达“汽车”框架时,请记住先绘制该框架,然后再将两个选项按钮放入其中。

4.根据下表更改控件的名称和标题。在Excel VBA代码中使用名称。字幕是显示在屏幕上的字幕。更改控件名称是一个好习惯。这将使您的代码更易于阅读。要更改控件的名称和标题,请单击“视图”,“属性窗口”,然后单击每个控件。

控制名称字幕
用户表格DinnerPlannerUserForm晚餐计划
文本框名称文字框
文本框PhoneTextBox
列表框CityListBox
组合框晚餐组合盒
复选框DateCheckBox16月13日
复选框DateCheckBox26月20日
复选框DateCheckBox36月27日
车架汽车
选项按钮CarOptionButton1
选项按钮CarOptionButton2没有
文本框MoneyTextBox
旋转按钮MoneySpinButton
命令按钮确定按钮
命令按钮清除按钮明确
命令按钮取消按钮取消
7个标签不用换姓名:,电话号码:等


注意:组合框是一个下拉列表,用户可以从中选择一个项目或填写自己的选择。只能选择一个选项按钮。

显示用户表格

若要显示用户窗体,请在工作表上放置一个命令按钮,并添加以下代码行:

私人  CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

现在,我们将创建Sub UserForm_Initialize。当您对用户窗体使用Show方法时,此子项将自动执行。

1.打开Visual Basic编辑器

2.在项目资源管理器中,右键单击DinnerPlannerUserForm,然后单击“查看代码”。

3.从左侧下拉列表中选择“用户表单”。从右侧的下拉列表中选择初始化。

4.添加以下代码行:

Private Sub UserForm_Initialize()

'Empty NameTextBox
NameTextBox.Value =“”

'Empty PhoneTextBox
PhoneTextBox.Value =“”

'Empty CityListBox
CityListBox.Clear

'
 CityListBox 填充 CityListBox
    .AddItem“旧金山”
    .AddItem“奥克兰”
    .AddItem“ Richmond”
最终 凭借

“空DinnerComboBox
DinnerComboBox.Clear

”填充DinnerComboBox
随着 DinnerComboBox
    .AddItem‘意大利’
    .AddItem‘中国’
    .AddItem‘炸薯条和肉’
最终 凭借

“取消选中DataCheckBoxes

DateCheckBox1.Value = 
DateCheckBox2.Value = 
DateCheckBox3.Value = 

“设置无车为默认
CarOptionButton2.Value = 

”清空MoneyTextBox
MoneyTextBox.Value =‘’

“将焦点设置NameTextBox
NameTextBox.SetFocus

结束 小组

说明:清空文本框,填充列表框和组合框,取消选中复选框,等等。

分配宏

现在,我们已经创建了用户表单的第一部分。尽管它看起来已经很整洁,但是当我们单击用户窗体上的命令按钮时,什么也不会发生。

1.打开Visual Basic编辑器

2.在项目资源管理器中,双击DinnerPlannerUserForm。

3.双击Money(货币)旋转按钮。

4.添加以下代码行:

私人 子项 MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

结束 子项

说明:此代码行在使用旋转按钮时更新文本框。

5.双击确定按钮。

6.添加以下代码行:

Private Sub OKButton_Click()

Dim emptyRow as Long

'使Sheet1处于活动状态
Sheet1.Activate

'确定emptyRow
emptyRow = WorksheetFunction.CountA(Range(“ A:A”))+ 1

'传输信息
Cells(emptyRow,1).Value = NameTextBox。 Value
Cells(emptyRow,2).Value = PhoneTextBox.Value
Cells(emptyRow,3).Value = CityListBox.Value
Cells(emptyRow,4).Value = DinnerComboBox.Value

如果 DateCheckBox1.Value = True 然后 Cells(emptyRow,5) .Value = DateCheckBox1.Caption

如果 DateCheckBox2.Value = True, 单元格(emptyRow,5).Value =单元格(emptyRow,5).Value&“”和DateCheckBox2.Caption

如果 DateCheckBox3.Value = True, 单元格(emptyRow,5).Value =单元格(emptyRow,5).Value&“ “&DateCheckBox3.Caption

如果 CarOptionButton1.Value =  。然后
    将细胞(emptyRow,6)。价值= ”是“
否则
    将细胞(emptyRow,6)。价值= ”否“
结束 如果

将细胞(emptyRow,7)。价值= MoneyTextBox。价值

结束 

说明:首先,我们激活Sheet1。接下来,我们确定emptyRow。变量emptyRow是第一个空行,每次添加记录时都会增加。最后,我们将信息从“用户表单”传输到emptyRow的特定列。

7.双击清除按钮。

8.添加以下代码行:

私人 小组 ClearButton_Click()

调用 UserForm_Initialize

结束 小组

说明:当您单击清除按钮时,此代码行调用Sub UserForm_Initialize。

9.双击取消按钮。

10.添加以下代码行:

Private Sub CancelButton_Click()

卸载我

End Sub

说明:当您单击“取消”按钮时,此代码行关闭用户窗体。

测试用户表单

退出Visual Basic编辑器,在第1行中输入以下所示的标签,然后测试用户窗体。

结果:

测试用户表单