当前位置: 首页 > news >正文

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

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

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

Dim OnDic As Object
Sub CheckboxeEvent()Dim oCB As CheckBox, OnCol As CollectionDim oSht As WorksheetConst MAX_CHECKED As Long = 4Set OnCol = New CollectionSet oSht = Worksheets("Sheet1")If OnDic Is Nothing ThenSet OnDic = CreateObject("scripting.dictionary")For Each oCB In oSht.CheckBoxesIf oCB.Value = xlOn Then OnDic(oCB.Name) = ""NextEnd IfFor Each oCB In oSht.CheckBoxesIf oCB.Value = xlOn Then OnCol.Add oCBNext oCBIf OnCol.Count > MAX_CHECKED ThenFor Each oCB In OnColIf Not OnDic.exists(oCB.Name) ThenoCB.Value = xlOffEnd IfNextElseOnDic.RemoveAllFor Each oCB In OnColOnDic(oCB.Name) = ""NextEnd 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()过程,最终效果如下图所示。

请添加图片描述

相关文章:

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

限制选中指定个数CheckBox控件(1/2) 实例需求:工作表中有8个CheckBox控件(下文中简称为控件),现在需要实现限制用户最多只能勾选4个控件。 Dim OnDic As Object Sub CheckboxeEvent()Dim oCB As CheckBox…...

QT中的信号与槽的讲解

文章目录 信号及其特点槽及其特点代码演示标准信号与标准槽函数方式一方式二 自定义信号和槽connect()函数信号和槽函数存在函数重载的情况下Qt的信号槽机制注意事项 信号及其特点 信号:是一种特殊的函数,又称信号函数,俗称信号,…...

RNN文本分类任务实战

递归神经网络 (RNN): 定义:RNN 是一类专为顺序数据处理而设计的人工神经网络。 顺序处理:RNN 保持一个隐藏状态,该状态捕获有关序列中先前输入的信息,使其适用于涉及顺序依赖关系的任务。词嵌入…...

【算法系列 | 12】深入解析查找算法之—斐波那契查找

序言 心若有阳光,你便会看见这个世界有那么多美好值得期待和向往。 决定开一个算法专栏,希望能帮助大家很好的了解算法。主要深入解析每个算法,从概念到示例。 我们一起努力,成为更好的自己! 今天第12讲,讲…...

全新的C++语言

一、概述 C 的最初目标就是成为 “更好的 C”,因此新的标准首先要对基本的底层编程进行强化,能够反映当前计算机软硬件系统的最新发展和变化(例如多线程)。另一方面,C对多线程范式的支持增加了语言的复杂度&#xff0…...

three.js 多通道组合

效果&#xff1a; 代码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div style"border: 1px so…...

编程笔记 html5cssjs 022 HTML表单概要

编程笔记 html5&css&js 022 HTML表单概要 一、<form> 元素二、HTML Form 属性三、操作小结 网页光是输出没有输入可不行&#xff0c;因为输出还是比输入容易&#xff0c;所有就先接触输出&#xff0c;后学习输入。html用来输入的东西叫“表单”。 HTML 表单用于搜…...

​三子棋(c语言)

前言&#xff1a; 三子棋是一种民间传统游戏&#xff0c;又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏规则是双方对战&#xff0c;双方依次在9宫格棋盘上摆放棋子&#xff0c;率先将自己的三个棋子走成一条线就视为胜利。但因棋盘太小&#xff0c;三子棋在很多时候会出现和…...

MySQL-DCL

DCL是数据控制语言&#xff0c;用来管理数据库用户&#xff0c;控制数据库的访问权限。 管理用户&#xff1a;管理哪些用户可以访问哪些数据库 1.查询用户 USE mysql; SELECT * FROM user; 注意&#xff1a; MySQL中用户信息和用户的权限信息都是记录在mysql数据库的user表中的…...

QT开源类库集合

QT开源类库集合 一、自定义控件 QSintQicsTableLongscroll-qtAdvanced Docking System 二、图表控件 QwtQCustomPlotJKQTPlotter 三、网络 QHttpEngineHTTP 四、 音视频 vlc-qt 五、多线程 tasks 六、数据库 EasyQtSql 一、自定义控件 1. QSint 源代码地址&#xff1a;QSint&…...

C++ STL(2)--算法(2)

算法(2)----STL里的排序函数。 1. sort: 对容器或普通数组中指定范围内的元素进行排序&#xff0c;默认进行升序排序。 sort函数是基于快速排序实现的&#xff0c;属于不稳定排序。 只支持3种容器&#xff1a;array、vector、deque。 如果容器中存储的是自定义的对象&#xff…...

格密码基础:对偶格(超全面)

目录 一. 对偶格的格点 1.1 基本定义 1.2 对偶格的例子 1.3 对偶格的图形理解 二. 对偶格的格基 2.1 基本定义 2.2 对偶格的格基证明 三. 对偶格的行列式 3.1 满秩格 3.2 非满秩格 四. 重复对偶格 五. 对偶格的转移定理&#xff08;transference theorem&#xff…...

ECMAScript简介及特性

ECMAScript是一种由ECMA国际&#xff08;前身为欧洲计算机制造商协会&#xff09;制定和发布的脚本语言规范&#xff0c;JavaScript在它基础上进行了自己的封装。ECMAScript和JavaScript的关系是&#xff0c;前者是后者的规格&#xff0c;后者是前者的一种实现。 ECMAScript的…...

csdn中的资源文件如何删除?

csdn中的资源文件如何删除&#xff1f; 然后写文章的时候 点击资源绑定&#xff0c;解锁资源&#xff0c;就可以再次上传。...

NA原理及配置

在IP地址空间中&#xff0c;a&#xff1b;b&#xff1b;c类地址中各有一部分地址&#xff0c;被称为私有IP地址&#xff08;私网地址&#xff09;&#xff0c;其余的为公有IP地址&#xff08;公网地址&#xff09; A&#xff1a;10.0.0.0 - 10.255.255.255 --- 相当于1条A类网段…...

解决:TypeError: ‘tuple’ object does not support item assignment

解决&#xff1a;TypeError: ‘tuple’ object does not support item assignment 文章目录 解决&#xff1a;TypeError: tuple object does not support item assignment背景报错问题报错翻译报错位置代码报错原因解决方法方法一&#xff1a;方法二&#xff1a;今天的分享就到…...

vue3项目中axios的常见用法和封装拦截(详细解释)

1、axios的简单介绍 Axios是一个基于Promise的HTTP客户端库&#xff0c;用于浏览器和Node.js环境中发送HTTP请求。它提供了一种简单、易用且功能丰富的方式来与后端服务器进行通信。能够发送常见的HTTP请求&#xff0c;并获得服务端返回的数据。 此外&#xff0c;Axios还提供…...

基础语法(一)(1)

常量和表达式 在这里&#xff0c;我们可以把Python当成一个计算器&#xff0c;来进行一些算术运算 例如&#xff1a; print(1 2 - 3) print(1 2 * 3) print(1 2 / 3)注意&#xff1a; print是一个python内置的函数&#xff0c;这个稍后我们会进行介绍 可以使用-*/&…...

YOLOv8模型yaml结构图理解(逐层分析)

前言 YOLO-V8&#xff08;官网地址&#xff09;&#xff1a;https://github.com/ultralytics/ultralytics 一、yolov8配置yaml文件 YOLOv8的配置文件定义了模型的关键参数和结构&#xff0c;包括类别数、模型尺寸、骨架&#xff08;backbone&#xff09;和头部&#xff08;hea…...

【大数据】Zookeeper 集群及其选举机制

Zookeeper 集群及其选举机制 1.安装 Zookeeper 集群2.如何选取 Leader 1.安装 Zookeeper 集群 我们之前说了&#xff0c;Zookeeper 集群是由一个领导者&#xff08;Leader&#xff09;和多个追随者&#xff08;Follower&#xff09;组成&#xff0c;但这个领导者是怎么选出来的…...

终极指南:使用Refine和Ant Design快速构建专业列表页面

终极指南&#xff1a;使用Refine和Ant Design快速构建专业列表页面 【免费下载链接】refine 一个用于构建内部工具、管理面板、仪表盘和B2B应用程序的React框架&#xff0c;具有无与伦比的灵活性。 项目地址: https://gitcode.com/GitHub_Trending/re/refine Refine是一…...

比迪丽模型在数据库课程设计中的应用:ER图可视化增强

比迪丽模型在数据库课程设计中的应用&#xff1a;ER图可视化增强 1. 引言 数据库课程设计是计算机专业学生的必修实践环节&#xff0c;其中ER图&#xff08;实体-关系图&#xff09;的设计与呈现是核心难点。传统工具绘制的ER图往往显得枯燥抽象&#xff0c;学生难以直观理解…...

OpenClaw技能组合拳:GLM-4.7-Flash完成跨平台内容同步

OpenClaw技能组合拳&#xff1a;GLM-4.7-Flash完成跨平台内容同步 1. 为什么需要跨平台内容同步 上周我遇到一个典型的内容创作者困境&#xff1a;在知乎看到一篇优质技术文章&#xff0c;想把它保存到Notion知识库&#xff0c;同时转换成适合公众号发布的格式。传统做法需要…...

RStudio Server部署与运维实战:从零搭建到高效管理

1. 环境准备&#xff1a;搭建RStudio Server的基石 在开始部署RStudio Server之前&#xff0c;我们需要确保服务器环境已经准备就绪。就像盖房子需要打地基一样&#xff0c;这一步决定了后续所有工作的稳定性。我遇到过不少因为环境问题导致的安装失败案例&#xff0c;大多数都…...

Emu3.5:vision、text 的vocab id 体系

Emu3.5 中视觉与语言 ID 体系的完整分析报告 https://huggingface.co/BAAI/Emu3.5 1. 报告目的 本文专门回答一个问题: Emu3.5 中,图片在进入大模型之前,视觉 tokenizer 的离散索引、视觉 special token 字符串、以及 LLM 最终接收的统一词表整数 id,三者之间到底是什么…...

FPGA做信号处理,你的浮点加减法拖后腿了吗?聊聊Vivado Floating-point IP核的性能调优

FPGA信号处理中浮点加减法的性能瓶颈与Vivado Floating-point IP核深度调优 在雷达脉冲压缩、波束成形等实时信号处理系统中&#xff0c;浮点运算单元往往是制约整体性能的关键瓶颈。许多工程师在完成基础功能验证后&#xff0c;常发现系统吞吐量不达标或时序无法收敛&#xff…...

深入RealReachability FSM引擎:有限状态机在iOS网络检测中的终极应用指南

深入RealReachability FSM引擎&#xff1a;有限状态机在iOS网络检测中的终极应用指南 【免费下载链接】RealReachability We need to observe the REAL reachability of network. Thats what RealReachability do. 项目地址: https://gitcode.com/gh_mirrors/re/RealReachabi…...

AD5660 16位DAC驱动库深度解析:嵌入式SPI接口实践

1. AD5660 数字模拟转换器库深度解析&#xff1a;面向嵌入式工程师的16位高精度DAC驱动实践1.1 器件本质与工程定位AD5660 是 Analog Devices 推出的单通道、16位电压输出型数模转换器&#xff08;DAC&#xff09;&#xff0c;采用紧凑的 8 引脚 MSOP 封装&#xff0c;专为对精…...

百川2-13B模型微调实战:提升OpenClaw中文邮件处理准确率

百川2-13B模型微调实战&#xff1a;提升OpenClaw中文邮件处理准确率 1. 问题背景与挑战 去年在尝试用OpenClaw自动化处理公司内部邮件时&#xff0c;我发现了一个棘手的问题&#xff1a;当邮件内容涉及复杂业务术语或非标准表达时&#xff0c;基于通用大模型的OpenClaw经常出…...

周红伟:OpenClaw 企业级智能体架构与全栈实战

周红伟“世界级 OpenClaw 智能体全栈实战培训方案”。 这套方案融合了架构设计、全链路开发、安全部署与商业落地四大维度&#xff0c;旨在帮助企业团队从“理论认知”跨越到“工程化落地”&#xff0c;构建具备生产级能力的AI智能体系统。 &#x1f680; 培训主题&#xff1a;…...