本期介绍Excel选择性输入列表——VBA弹出列表法的制作流程。
工具/原料
Excel
Excel选择性输入列表——VBA弹出列表法制作流程
1、插入用户窗体:打开Excel工作簿-->Alt+F11进入VBA窗口-->右击工程窗口空白处-->插入用户窗体。
2、设置用户窗体属性:在用户窗体属性窗口中,将窗体名称改为“F1”,将标题改为“学历选项”。
3、插入列表框:点选控件箱中的列表框-->点击用户窗体空白处放置-->调整好大小、位置。
4、设置列表框属性:按图示设置列表框的背景色和字体。
5、用户窗体程序设计:双击用户窗体或列表框,进入用户窗体代码窗口,在窗口中输入程序代码。
6、用户窗体程序设计——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 + 25End Sub
7、用户窗体程序设计——listBox1_Change()事件当列表框的值发生改变(选探怙鲔译择了某个选项)时,激活该事件。在事件中将列表框用户所选的值赋给当前疟觥窖捎单元格。Private Sub listBox1_Change() ActiveCell.Value = ListBox1.Value Cells(ActiveCell.Row, 1).Select Unload F1End Sub
8、工作表程序设计——Worksheet_SelectionChange事件在工旯皱镢涛程窗口中找到调用弹出列表的工作表,双击进入其代码窗口,输入下面的程序。'当所选单元格为第3列、2至最后一行的某个单元格时,激活F1窗体。Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim EndRow As SingleEndRow = 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
9、使用效果:
评价
1、VBA弹出列表可以设计得更加美观,可以根据需要灵活定制,是有效性设置法的加强版。但其仍然无法解决大数据量的问题,比如地址的输入至少需要精确到县一级,而全国一共有3000多个县,一并放进列表中去选择是没有任何意义的。
下期预告:
1、下期将介绍“Excel选择性输入列表——VBA分级连选法”的制作流程。