电子表格单项下拉菜单可以利用数据有效性(数据验证)制作,但是每个单元格只能选中/输入一个内容。
演示
如果要一个单元格输入多个内容,可以利用列表框的功能,如下图所示:
一次性输入多个字段内容,每个字段可用不同的分隔符分隔开来(这里用的是换行符,也可以改为逗号、分号等)。
也可以展示多列内容,供辅助选择。
准备筛选项
筛选项就是下拉需要选择的内容,这里我们需要单独整理一份,放在单独的一个sheet里面,这里我将它放到了Sheet1这个插页里面,如下图所示:
A列是要选择的内容,B列是辅助选择的内容(可以删除)。
当然,这里可以存放多列内容,下拉列表输入的字段也可以调整,这个后面再说。
注意这是插入到Sheet2界面,跟“准备筛选项”不是同一个sheet。
插入列表框
点击“开发工具”选项卡,点击【插入】,选择ActiveX控件下方的第四个按钮列表框;拖入到Excel界面当中去,大小随便设置,接着点击 开发工具选项卡上面的【设计模式】,取消设计状态。
需要注意的是,首次插入列表框,它的名字叫做“ListBox1”,这个在Excel左上角可以看到,如果不是的话,说明你之前插入过一个列表框了,要把它的名字修改了哈。
插入VBA代码块
完成以上步骤后,打开VBE界面,进入到刚才插入列表框的sheet内,这里我是Sheet2插入,粘贴以下代码(模板表详见文末):
代码解读
Worksheet_SelectionChange表示当工作表鼠标选择内容发生变化时执行以下语句;
ListBox1就是我们插入的列表框,可以设置他的高度、宽度、是否显示标题行、等等设置;
其它解读详见底部代码备注。
注意事项
1、下拉默认选择的是筛选项插页的第一列,就是A列的内容,如果你要变动列的话,比如改到B列,只需要修改这句【strMy = strMy & vbCrLf & .List(i, 0)】最后的数字“0”;
0代表A列,1代表B列,2代表C列...
索引是从0开始的。
2、多选分隔符代码里面用的是换行符“vbCrLf”,可以将它换成其它的,比如顿号、分号等等。
完整代码如下所示:
小结
以上就是今天的分享,希望对你有所帮助~
领取专属 10元无门槛券
私享最新 技术干货