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

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

1准备数据源

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

2开启“开发工具”

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

3具体实现

3.1插入列表框控件

选中单元格->开发工具->插入->ActiveX控件->列表框(ActiveX控件)
在这里插入图片描述
在这里插入图片描述

3.2设置列表框控件属性

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

3.3编辑VBA代码实现功能

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

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

3.4调试运行

调试->编译 VBAProject
在这里插入图片描述
运行效果:
在这里插入图片描述
保存文件时选择“保存类型”为:
在这里插入图片描述

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

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

  • 9
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值