利用Excel设置可多选下拉列表
工具/原料
Excel2010以上版本
方法/步骤
1、显示“开发工具”选项卡。打开Excel2010,点击左上方“文件”图标。点击“选项”,弹出“Excel选项”对话框,在“自定义功能区”中勾选“开发工具”,点击确定。
2、设置下拉列表的选项内容。将工作表sheet2名称修改为“data”,并在A列输入下拉选项。
3、插入ListBox(列表框)控件。1)在工作表sheet1中,选择A列,点击“开发工具”选项卡,选择“插入”里的“列表框”,放置到A列中。2)选中列表框控件,点击“设计模式”,在设计模式下点击“属性”,弹出ListBox属性框,选择“按分类序”。修改MultiSelect项为“1–fmMultiSelectMulti”,修改ListStyle项为“1–fmListStyleOption”,设置ListFillRange项为所选菜单选项所在的表格名称和单元格范围,具体格式为“data!A1:A8”。
4、插入代码。在Exc娣定撰钠el中点击开发工具中的“VisualBasic”,打开VB编辑器,在VB编辑器中双击胨检馁秣Sheet1,打开sheet1的编辑器,将以下代码粘贴到编辑器中并保存。在sheet1中保存代码:PrivateSubListBox1_Change()IfReLoadThenExitSub'见下方说明Fori=0ToListBox1.ListCount-1IfListBox1.Selected(i)=TrueThent=t&","&ListBox1.List(i)NextActiveCell=Mid(t,2)EndSubPrivateSubWorksheet_SelectionChange(ByValTargetAsRange)WithListBox1IfActiveCell.Column=1AndActiveCell.Row>1Thent=ActiveCell.ValueReLoad=True'如果是根据单元格的值修改列表框,则暂时屏蔽listbox的change事件。Fori=0To.ListCount-1'根据活动单元格内容修改列表框中被选中的内容IfInStr(t,.List(i))Then.Selected(i)=TrueElse.Selected(i)=FalseEndIfNextReLoad=False.Top=ActiveCell.Top+ActiveCell.Height'以下语句根据活动单元格位置显示列表框.Left=ActiveCell.Left.Width=ActiveCell.Width.Visible=TrueElse.Visible=FalseEndIfEndWithEndSub
5、在VB编辑器中双击Sheet2,将以下代码粘贴到编辑器中并保存。(该段代码是为了动漤逗庞俄态设置下拉菜单选项苒锃巳伢值而加的,如果下拉菜单的选项值固定,可以直接在ListBox的ListFillRange属性中指定,不要以下的代码)在sheet2(data)中保存代码:PrivateSubWorksheet_Change(ByValTargetAsRange)Sheets("Sheet1").ListBox1.ListFillRange="data!a1:a"&Cells(1,1).End(xlDown).RowEndSub
6、将代码保存后,关闭VB编辑器,在sheet1工作表中,点击A列单元格,结果如下图所示。在模块1中保存:PublicReLoadAsBoolean'开关listbox的change事件