首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

单项下拉菜单可以用数据有效性,那么如何制作可以多选下拉菜单?

电子表格单项下拉菜单可以利用数据有效性(数据验证)制作,但是每个单元格只能选中/输入一个内容。

演示

如果要一个单元格输入多个内容,可以利用列表框的功能,如下图所示:

一次性输入多个字段内容,每个字段可用不同的分隔符分隔开来(这里用的是换行符,也可以改为逗号、分号等)。

也可以展示多列内容,供辅助选择。

准备筛选项

筛选项就是下拉需要选择的内容,这里我们需要单独整理一份,放在单独的一个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”,可以将它换成其它的,比如顿号、分号等等。

完整代码如下所示:

小结

以上就是今天的分享,希望对你有所帮助~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230317A00RVT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券