怎么在excel单元格里设置选项可以多选?(超简单,亲测有效)
今天小编给大家分享的表格小技巧是:如何制作显示多列同时可以选择多项的下拉菜单?比如下图,显示三列下拉菜单,可以选择任意多个项目合并到一个单元格,步骤超级简单,小编亲测有效。
怎么在excel单元格里设置选项可以多选?
1、首先,咱们得有个数据表,用来填充选项菜单的数据。嗯,我们把这份工作表命名为“参数表”,数据如下图所示。A列是商品代码,B列是商品,C列是负责人。
2、然后,我们在需要制作选项菜单的工作表放一个列表框控件。
3、在【开发工具】选项卡下单击【插入】按钮,在弹出来的选项菜单中选择ActiveX控件列表框,画在当前工作表。位置随便,大小不论,丑美无关……毕竟这些你说了都不算,待会代码会重置。
需要说明的是,如果这是你在当前工作簿放置的第1个列表框控件,它会被系统默认名称为ListBox1。名字很重要,——下面的代码,我们都是通过名字来控制控件的一生的。
4、最后退出设计模式,也就是点击【开发工具】选项卡下的【设计模式】按钮。
5、OK,最后把以下代码复制粘贴到目标工作表的VBE编辑窗口即可。比如我们这里是粘贴到名称为“入库单”工作表。
代码如下:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column 2 Or Target.Row 1 Or Target.Rows.Count > 1 Then ListBox1.Visible = False: Exit Sub '如果选中的单元格大于1个,则退出程序 With Sheets("参数表") r = .Range("a1:c" & .Cells(Rows.Count, "a").End(xlUp).Row).Value End With With ListBox1 '调整位置到单元格处 .Top = Target.Top 'listbox的顶端位置 .Left = Target.Left + Target.Width 'listbox的左端位置 .Width = 250 '宽度 .Height = 150 '高度 .Visible = True '可见 '.ColumnHeads = True '显示标题行 .ColumnCount = 3 '三列 .ColumnWidths = "50;120;50" '设置第一列宽度50第二列宽度120…… .List = r '数据来源 .MultiSelect = fmMultiSelectMulti '允许通过鼠标点击的方式进行多选 .ListStyle = fmListStyleOption '选项按钮设置为方形 End With End Sub Private Sub ListBox1_Change() Dim i As Long, strMy As String With ListBox1 If .Selected(0) = True Then .Selected(0) = False '如果用户选取的是标题行那么撤销选取 For i = 1 To .ListCount - 1 '遍历listbox的记录,如果被选中则按换行符合并 If .Selected(i) = True Then strMy = strMy & vbCrLf & .List(i, 1) '取list的第二列 '无论列还是行的索引都是从0开始的,因此第二列为1 End If Next End With ActiveCell.Value = Mid(strMy, 3) '数据写入单元格 End Sub
代码组成说明
1、一部分是工作表的Worksheet_SelectionChange事件。当用户选择目标范围内的单元格时,显示设置列表框的位置、大小和数据。本例中列表框只出现在B列,且行数大于3的情况下。这个可以根据实际情况,自己进行修改。
2、另一部分是列表框的ListBox1_Change事件,当用户选择列表框的数据时,将数据写入单元格。相关代码都有注释。
最新推荐
-
miui11透明壁纸怎么设置 小米11设置透明壁纸
miui11透明壁纸怎么设置?通过让自己手机的壁纸显得透明,看起来更有个性,在miui11中,自带了设置透 […]
-
wps的文档怎么设置密码保护 wps文档加密设置密码
wps的文档怎么设置密码保护?wps文档不仅支持用户自由的编辑文本数据,也支持用户对自己隐私进行保护,通过 […]
-
win7开机自动启动软件怎么关 win7系统禁用开机启动项在哪
win7开机自动启动软件怎么关?在电脑使用过程中,用户安装的软件应用都会默认在电脑开机时候自己启动,这就导 […]
-
win11截图保存路径怎么改 win11截图在哪个文件夹
win11截图保存路径怎么改?很多用户都会对想要保存的图片素材进行截图保存,那在win11系统中,截图默认 […]
-
win10桌面图标有防火墙标志怎么办 电脑软件图标有防火墙的小图标怎么去掉
我们的桌面图标总是想要保持美观,但有时候会发现上面多了几个电脑防火墙的标志,变得很丑,那么win10桌面图标有防火墙标志怎么去掉呢。
-
怎么把默认显卡改为独立显卡 win10显卡切换到独显
怎么把默认显卡改为独立显卡?独立显卡的性能优于主板自带的集成显卡,现在许多电脑都配备了双显卡,然而许多用户 […]
热门文章
miui11透明壁纸怎么设置 小米11设置透明壁纸
2wps的文档怎么设置密码保护 wps文档加密设置密码
3win7开机自动启动软件怎么关 win7系统禁用开机启动项在哪
4win11截图保存路径怎么改 win11截图在哪个文件夹
5win10桌面图标有防火墙标志怎么办 电脑软件图标有防火墙的小图标怎么去掉
6怎么把默认显卡改为独立显卡 win10显卡切换到独显
7华硕笔记本怎么设置ssd为第一启动盘 华硕电脑设置固态硬盘为启动盘
8win10锁屏设置幻灯片自动播放不生效怎么解决
9win7与win10如何建立局域网共享 win10 win7局域网互访
10笔记本win7怎么创建wifi win7电脑设置热点共享网络
随机推荐
专题工具排名 更多+