【Excel表格实现下拉复选框多选】

Excel表格实现下拉复选框多选

1功能实现必备条件

  • Windows 10 环境
  • Microsoft Office Excel 2021
  • Microsoft Office Excel 2021已提前安装VBA支持库

2准备数据源

打开要实现的excel表格,将选项数据放到sheet2
在这里插入图片描述

3开启“开发工具”

开启 “开发工具” 步骤:文件->选项->自定义功能区->开发工具->“确定”保存
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完成以上准备工作

4具体实现

4.1插入列表框控件

选中单元格 --> 开发工具 --> 插入 --> ActiveX控件 --> 列表框(ActiveX控件)
注意: 点击列表框(ActiveX控件)后需要点击一下单元格后才会显示出一个ActiveX控件。
在这里插入图片描述
在这里插入图片描述

4.2设置列表框控件属性

选中列表框控件 --> 开发工具 --> 设计模式 --> 属性
在这里插入图片描述
在这里插入图片描述

  • ListFillRange: Sheet2!A1:A10
    • 设置数据范围:数据源在Sheet2里面的A1-A10。(需要手动输入数据范围Sheet2!A1:A10)
  • ListStyle: 1 - fmListStyleOption
    • 设置样式
  • MultiSelect: 1 - fmMultiSelectMulti
    • 设置多选

4.3编辑VBA代码实现功能

开发工具 --> 设计模式 --> 查看代码
注意:Excel需要提前安装VBA支持库;
在这里插入图片描述
VBA代码内容:

在这里插入图片描述注意:
图内“13”是第13列的内容实现下拉复选框功能,这个要根据场景需要进行调整。
图内“1”含义是取消首行实现下拉复选框功能。通常首行是标题,这个要根据场景需要进行调整。

Private Sub ListBox1_Change()

If Reload Then Exit Sub '加载ListBox1

For i = 0 To ListBox1.ListCount - 1

If ListBox1.Selected(i) = True Then t = t & "," & ListBox1.List(i)

Next

ActiveCell = Mid(t, 2)

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With ListBox1

        '2 列 且 单元格大于 1,因为表头的字段不需要进行多选

        If ActiveCell.Column = 13 And ActiveCell.Row > 1 Then

            t = ActiveCell.Value

            Reload = True '如果是根据单元格的值修改列表框,则暂时屏蔽listbox的change事件。

            For i = 0 To .ListCount - 1 '根据活动单元格内容修改列表框中被选中的内容

                If InStr(t, .List(i)) Then

                    .Selected(i) = True

                    Else

                    .Selected(i) = False

                End If

            Next

            Reload = False

            .Top = ActiveCell.Top + ActiveCell.Height '以下语句根据活动单元格位置显示列表框

            .Left = ActiveCell.Left

            .Width = ActiveCell.Width

            .Visible = True

            Else

            .Visible = False

        End If

    End With

End Sub

4.4调试运行

调试 --> 编译 VBAProject --> 点击运行VB代码 --> 回到下拉复选框区域进行功能验证
在这里插入图片描述在这里插入图片描述

运行效果:
在这里插入图片描述

4.5保存文件

需要将已经实现下拉复选框功能的.xlsx文件另存为.xlsm文件,这样才能在后续使用时保证下拉复选框功能正常使用。
正常保存后的.xlsm文件在使用时需要使用Microsoft Office Excel打开并要开启功能,才能够正常使用下拉复选框功能。

保存文件时选择“保存类型”为:
在这里插入图片描述

(多个下拉复选框实现效果要在VBA里面做调整)

引用自:Excel 单元格下拉复选框(多选项)——VBA 学习

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值