定制Excel选择性输入列表:[2]VBA弹出列表法
本期介绍Excel选择性输入列表——VBA弹出列表法的制作流程。
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/031231632385e03662107d5cb8e039723c035ad5.jpg)
2、设置用户窗体属性:在用户窗体属性窗口中,将窗体名称改为“F1”,将标题改为“学历选项”。
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/75af02324b18512c1f70e213ad334884cce349d5.jpg)
4、设置列表框属性:按图示设置列表框的背景色和字体。
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/65390a23beb9763e8b4381626ad06de89b61b0d5.jpg)
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
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/6bbfdd14f1c595ee81408d9327530688902c9ad5.jpg)
评价
1、VBA弹出列表可以设计得更加美观,可以根据需要灵活定制,是有效性设置法的加强版。但其仍然无法解决大数据量的问题,比如地址的输入至少需要精确到县一级,而全国一共有3000多个县,一并放进列表中去选择是没有任何意义的。
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/8974c38a59de45075f8002c45e413a8ca70885d5.jpg)