下面我们将查看Excel VBA中的一个程序,该程序创建一个包含多个页面的用户窗体。该用户表单还包含图像。
多页控件包含两个页面。在第1页,用户可以填写他/她的个人信息。在第2页,用户可以指示他/她最喜欢哪幅画。
要创建此用户窗体,请执行以下步骤。
1.打开Visual Basic编辑器。如果“项目资源管理器”不可见,请单击“视图”,“项目资源管理器”。
2.单击插入,用户窗体。如果“工具箱”没有自动出现,请单击“视图”,“工具箱”。屏幕设置如下。
3.添加多页控件,标签,文本框(第一个在顶部,第二个在第一个下方),框架,选项按钮(第一个在左侧,第二个在右侧),列表框,图像控件和命令按钮。完成此操作后,结果应与之前显示的用户表格的空白版本一致。例如,通过在工具箱中单击多页来创建多页控件。接下来,您可以在用户窗体上拖动一个多页控件。到达“性别”框架时,请记住先绘制该框架,然后再将两个选项按钮放入其中。
4.您可以更改控件的名称和标题。在Excel VBA代码中使用名称。字幕是显示在屏幕上的字幕。更改控件的名称是一种很好的做法,但是此处没有必要,因为在此示例中,我们只有几个控件。若要更改用户窗体,多页选项卡,标签,框架,选项按钮和命令按钮的标题,请单击视图,属性窗口,然后单击每个控件。
5.要显示用户窗体,请在工作表上放置一个命令按钮,并添加以下代码行:
UserForm1.Show
End Sub
现在,我们将创建Sub UserForm_Initialize。当您对用户窗体使用Show方法时,此子项将自动执行。
6.打开Visual Basic编辑器。
7.在Project Explorer中,右键单击UserForm1,然后单击“查看代码”。
8.从左侧下拉列表中选择“用户表单”。从右侧的下拉列表中选择初始化。
9.添加以下代码行:
随着 ListBox1的
.AddItem“山”
.AddItem“日落”
.AddItem“海滩”
.AddItem“冬天”
结束 随着
结束 小组
说明:将填充第2页上的列表框。
现在,我们已经创建了用户表单的第一部分。尽管看起来已经很整洁,但是当我们从列表框中选择一个项目或单击“确定”按钮时,什么也不会发生。
10.下载图像(此页面右侧)并将其添加到“ C:\ test \”
11.在Project Explorer中,双击UserForm1。
12.双击列表框。
13.添加以下代码行:
如果 ListBox1.ListIndex = 0 然后
Image1.Picture =的LoadPicture( “C:\测试\ Mountains.jpg”)
结束 如果
如果 ListBox1.ListIndex = 1 然后
Image1.Picture =的LoadPicture(“C:\测试\ Sunset.jpg “)
结束 如果
如果 ListBox1.ListIndex = 2 然后
Image1.Picture =的LoadPicture(” C:\测试\ Beach.jpg “)
结束 如果
如果 ListBox1.ListIndex = 3 然后
Image1.Picture =的LoadPicture(” C:\测试\ Winter.jpg“)
结束 如果
结束 子
说明:这些代码行根据列表框中的选定项目加载图片。
14.双击确定按钮。
15.添加以下代码行:
Dim emptyRow as Long
'使Sheet1处于活动状态
Sheet1.Activate
'确定emptyRow
emptyRow = WorksheetFunction.CountA(Range(“ A:A”))+ 1
'传输信息
单元格(emptyRow,1).Value = TextBox1。值
将细胞(emptyRow,2)。价值= TextBox2.Value
如果 OptionButton1.Value = 真 。然后
将细胞(emptyRow,3)。价值= “男性”
否则
将细胞(emptyRow,3)。价值= “女性”
结束 如果
将细胞(emptyRow ,4).Value = ListBox1.Value
'关闭用户窗体
卸载我
结束 子
说明:首先,我们激活Sheet1。接下来,我们确定emptyRow。变量emptyRow是第一个空行,每次添加记录时都会增加。接下来,我们将信息从“用户表单”转移到emptyRow的特定列。最后,我们关闭用户窗体。
16.退出Visual Basic编辑器,在第1行中输入以下所示的标签,然后测试用户窗体。
结果: