您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Excel设置可多选下拉菜单
Excel中设置可多选下拉菜单注意:需要在Excel2003中进行,必须是.xls类型的文档,.xlsx类型的不可以。第一步:显示“开发工具”选项卡。1)点击Excel左上角图标,点击“Excel选项(I)”。2)点击Excel左上角图标,在【常规】项中勾选【在功能区域显示“开发工具”选项卡】。第二步,设置菜单选项内容:在当前Excel的另一个工作表(名称可修改)中输入菜单选项内容。第三步:拖入ListBox控件。1)点击【开发工具】插入ActiveX控件中ListBox,拖入Excel表第一个工作表Sheet1中。第四步,设置ListBox属性:选中ListBox控件点击【设计模式】点击【属性】点击【按分类序】,修改MultiSelect项为“1–fmMultiSelectMulti”,修改ListStyle项为“1–fmListStyleOption”,设置ListFillRange项为所选菜单选项所在的表格名称和单元格范围,具体格式为“表名!单元格开始:单元格结束”。第五步,编码代码:1)在Excel中点击【开发工具】【VisualBasic】打开VB编辑器。2)在VB编辑器中双击Sheet1,将以下代码粘贴到编辑器中并保存。3)在VB编辑器中双击Sheet2,将以下代码粘贴到编辑器中并保存。(该段代码是为了动态设置下拉菜单选项值而加的,如果下拉菜单的选项值固定,可以直接在ListBox的ListFillRange属性中指定,不要以下的代码)PrivateSubListBox1_Change()IfReLoadThenExitSub'见下方说明Fori=0ToListBox1.ListCount-1IfListBox1.Selected(i)=TrueThent=t&,&ListBox1.List(i)NextActiveCell=Mid(t,2)EndSubPrivateSubWorksheet_SelectionChange(ByValTargetAsRange)WithListBox1'说明:ActiveCell.Column=1表示选下拉列表在第一列显示,可随意修改;ActiveCell.Row1表示从第一行开始往下都有下拉菜单,可改为:ActiveCell.Row=1只有第一个单元格有下拉菜单,ActiveCell.Row1ANDActiveCell.Row10表示1到9行单元格有下拉菜单IfActiveCell.Column=1AndActiveCell.Row1Thent=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第六步,保存。最终结果如下图:其他注意事项:1)代码中的“Sheet1、data”都是Excel中的工作表名称,可以直接双击修改,如果修改了工作表名称,则需要将各VB代码中的对应工作表名称都相应修改,否则代码无效或报错。2)代码中的“ListBox1”是列表控件的名称,可以在“设计模式”模式下的控件属性中修改,如果修改了列表控件的名称,则需要将各VB代码中的列表控件名称都相应修改,否则代码无效或报错。3)如何设置允许复选和只允许单选:列表控件的属性中MultiSelect项为“1–fmMultiSelectMulti”时,是可多选的PrivateSubWorksheet_Change(ByValTargetAsRange)Sheets(Sheet1).ListBox1.ListFillRange=data!a1:a&Cells(1,1).End(xlDown).RowEndSub列表,如果是“0–fmMultiSelectSingle”,则是单选列表,如下图:4)如何显示复选框或单选按钮:列表控件的属性中ListStyle项为“1–fmListStyleOption”时显示复选框或单选按钮,如果是“0–fmListStylePlain”,则不显示选择项前边的复选框或单选按钮。
本文标题:Excel设置可多选下拉菜单
链接地址:https://www.777doc.com/doc-1911850 .html