本期介绍Excel选择性输入列表——VBA弹出列表法的制作流程。
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/031231632385e03662107d5cb8e039723c035ad5.jpg)
工具/原料
Excel
Excel选择性输入列表——VBA弹出列表法制作流程
1、插入用户窗体:打开Excel工作簿-->Alt+F11进入VBA窗口-->右击工程窗口空白处-->插入用户窗体。
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/baab2086304861435e5572858febf6a75e0f53d5.jpg)
2、设置用户窗体属性:在用户窗体属性窗口中,将窗体名称改为“F1”,将标题改为“学历选项”。
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/75af02324b18512c1f70e213ad334884cce349d5.jpg)
3、插入列表框:点选控件箱中的列表框-->点击用户窗体空白处放置-->调整好大小、位置。
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/874f6275e5f4fcf5718c007a21d7726b0de2bdd5.jpg)
4、设置列表框属性:按图示设置列表框的背景色和字体。
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/65390a23beb9763e8b4381626ad06de89b61b0d5.jpg)
5、用户窗体程序设计:双击用户窗体或列表框,进入用户窗体代码窗口,在窗口中输入程序代码。
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/40d2d0e8b004541b658ec892869a310e1699a6d5.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)
9、使用效果:
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/01bd69f7980e5f208ff0656fbd20b93acc898ed5.jpg)
评价
1、VBA弹出列表可以设计得更加美观,可以根据需要灵活定制,是有效性设置法的加强版。但其仍然无法解决大数据量的问题,比如地址的输入至少需要精确到县一级,而全国一共有3000多个县,一并放进列表中去选择是没有任何意义的。
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/8974c38a59de45075f8002c45e413a8ca70885d5.jpg)
下期预告:
1、下期将介绍“Excel选择性输入列表——VBA分级连选法”的制作流程。
![定制Excel选择性输入列表:[2]VBA弹出列表法](https://exp-picture.cdn.bcebos.com/95bd4e8c9bcec7f86bf66769034ce54a2e27fbd5.jpg)