限制选中指定个数CheckBox控件(1/2)

限制选中指定个数CheckBox控件(1/2)

实例需求:工作表中有8个CheckBox控件(下文中简称为控件),现在需要实现限制用户最多只能勾选4个控件。

Dim OnDic As Object
Sub CheckboxeEvent()
    Dim oCB As CheckBox, OnCol As Collection
    Dim oSht As Worksheet
    Const MAX_CHECKED As Long = 4
    Set OnCol = New Collection
    Set oSht = Worksheets("Sheet1")
    If OnDic Is Nothing Then
        Set OnDic = CreateObject("scripting.dictionary")
        For Each oCB In oSht.CheckBoxes
            If oCB.Value = xlOn Then OnDic(oCB.Name) = ""
        Next
    End If
    For Each oCB In oSht.CheckBoxes
        If oCB.Value = xlOn Then OnCol.Add oCB
    Next oCB
    If OnCol.Count > MAX_CHECKED Then
        For Each oCB In OnCol
            If Not OnDic.exists(oCB.Name) Then
                 oCB.Value = xlOff
            End If
        Next
    Else
        OnDic.RemoveAll
        For Each oCB In OnCol
            OnDic(oCB.Name) = ""
        Next
    End If
End Sub

【代码解析】
第1行代码声明模块基本对象变量,用于保存已经选中的控件。
第5行代码设置最多选中4个控件。
第6行代码创建Collection对象实例。
第7行代码指定工作表对象。
如果首次运行此代码过程,OnDic对象为空,则第9行代码创建字典对象,第10~12代码遍历工作表中的控件,如果用户已经勾选控件,第11行代码将控件名称保存在字典对象中。
第14~16代码遍历工作表中的控件,将当期已经选中的控件添加到OnCol对象中。
第17行代码判断当前选中的控件个数是否大于指定个数(4)。
如果已经超过指定个数,第18~22行代码循环遍历OnCol对象。
第19行代码查找存在于OnCol对象中,但是不存在于OnDic对象中的控件,满足上述条件的控件就是最后一个被选中的控件。
第20行代码取消勾选控件。
由于用户可能会取消勾选某个控件,所以第24行代码先清空字典控件,然后第25~27行代码将当前选中的控件添加到字典控件中。

所有CheckBox控件都指定宏为CheckboxeEvent()过程,最终效果如下图所示。

请添加图片描述

相关推荐

  1. CheckBox和CheckBoxList的使用

    2024-01-06 23:04:04       9 阅读
  2. 【WPF应用26】C#中的CheckBox详解与应用示例

    2024-01-06 23:04:04       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-06 23:04:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-06 23:04:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-06 23:04:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-06 23:04:04       20 阅读

热门阅读

  1. 八、Vue3组件库经验[Ant Design]

    2024-01-06 23:04:04       39 阅读
  2. web前端之css、style

    2024-01-06 23:04:04       45 阅读
  3. FRP + nginx 获取客户端真实IP

    2024-01-06 23:04:04       45 阅读
  4. uView Button 按钮

    2024-01-06 23:04:04       75 阅读
  5. 编程笔记 html5&css&js 022 HTML表单概要

    2024-01-06 23:04:04       30 阅读
  6. CSS-4

    CSS-4

    2024-01-06 23:04:04      40 阅读