定制Excel选择性输入列表:[2]VBA弹出列表法
来源:网络收集 点击: 时间:2024-02-18插入用户窗体:
打开Excel工作簿--Alt+F11进入VBA窗口--右击工程窗口空白处--插入用户窗体。

设置用户窗体属性:
在用户窗体属性窗口中,将窗体名称改为“F1”,将标题改为“学历选项”。

插入列表框:
点选控件箱中的列表框--点击用户窗体空白处放置--调整好大小、位置。

设置列表框属性:
按图示设置列表框的背景色和字体。

用户窗体程序设计:
双击用户窗体或列表框,进入用户窗体代码窗口,在窗口中输入程序代码。

用户窗体程序设计——UserForm_Activate()事件
在用户窗体激活事件中给列表框初始化,设置窗体位置为单元格跟随。
Private Sub UserForm_Activate()
With ListBox1
.AddItem 大学本科
.AddItem 大专
.AddItem 中专
.AddItem 高中以下
.AddItem 硕士研究生
.AddItem 博士研究生
End With
F1.Top = ActiveCell.Top + 50
F1.Left = ActiveCell.Left + ActiveCell.Width + 25
End Sub
7/9用户窗体程序设计——listBox1_Change()事件
当列表框的值发生改变(选择了某个选项)时,激活该事件。在事件中将列表框用户所选的值赋给当前单元格。
Private Sub listBox1_Change()
ActiveCell.Value = ListBox1.Value
Cells(ActiveCell.Row, 1).Select
Unload F1
End Sub
8/9工作表程序设计——Worksheet_SelectionChange事件
在工程窗口中找到调用弹出列表的工作表,双击进入其代码窗口,输入下面的程序。
当所选单元格为第3列、2至最后一行的某个单元格时,激活F1窗体。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim EndRow As Single
EndRow = Range(a65536).End(xlUp).Row 数据区域最后一行的行号
If Target.Row 1 And Target.Row = EndRow And _
Target.Column = 3 And Target.Rows.Count = 1 _
Then F1.Show 激活F1窗体
End Sub

使用效果:

VBA弹出列表可以设计得更加美观,可以根据需要灵活定制,是有效性设置法的加强版。但其仍然无法解决大数据量的问题,比如地址的输入至少需要精确到县一级,而全国一共有3000多个县,一并放进列表中去选择是没有任何意义的。

下期将介绍“Excel选择性输入列表——VBA分级连选法”的制作流程。

在家靠父母,出门靠朋友!糊口度日卖艺为生!烦请诸位父老乡亲投赏一票!抱拳称谢了!
excel版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_62448.html