Excel 中选中复选框时如何取消选中另一个复选框?

网友投稿 317 2024-01-21

在 Excel 中选中复选框时如何取消选中另一个复选框?

如下图所示,假设有一个采购清单需要您最终确定。 在查看列表时,您发现某些类别的选中项目超出预算,需要重新选择。 由于列表太长,您现在需要一种更有效的方法来在类别中选中新复选框时自动取消选中原始选中的复选框。 本教程逐步演示了该方法,以帮助您完成它。

当使用 VBA 代码选中一个新复选框时,取消选中另一个复选框

当使用 VBA 代码选中一个新复选框时,取消选中另一个复选框

在 Excel 中选中复选框时如何取消选中另一个复选框?

如上例所示,十个复选框命名为 复选框1, 复选框2, 复选框3,..., 复选框10 分为 3 组,位于表中的不同类别中。

本例中,Checkbox1、2、3为一组,Checkbox4、5、6、7为一组,Checkbox8、9,10、XNUMX为一组。 在每个组中,一次只允许选中一个复选框。 选中一个复选框时,会自动取消选中另一个复选框。

现在让我们看看如何应用下面的 VBA 代码来解决这个问题。

1.右键单击工作表选项卡,然后单击 查看代码 从上下文菜单。

2.在开 Microsoft Visual Basic应用程序 窗口,将以下 VBA 代码粘贴到 表(代码) 窗口。

VBA代码:选中新复选框时取消选中另一个复选框

Dim xBol As Boolean Updated by Extendoffice 20220816 Private Sub CheckBox1_Change() SetCheckBoxes "CheckBox1" End Sub Private Sub CheckBox2_Change() SetCheckBoxes "CheckBox2" End Sub Private Sub CheckBox3_Change() SetCheckBoxes "CheckBox3" End Sub Private Sub CheckBox4_Change() SetCheckBoxes "CheckBox4" End Sub Private Sub CheckBox5_Change() SetCheckBoxes "CheckBox5" End Sub Private Sub CheckBox6_Click() SetCheckBoxes "CheckBox6" End Sub Private Sub CheckBox7_Click() SetCheckBoxes "CheckBox7" End Sub Private Sub CheckBox8_Click() SetCheckBoxes "CheckBox8" End Sub Private Sub CheckBox9_Click() SetCheckBoxes "CheckBox9" End Sub Private Sub CheckBox10_Click() SetCheckBoxes "CheckBox10" End Sub Private Function SetCheckBoxes(mCheckBoxName As String) Dim x As Long Dim xAllArr Dim xArrItem Dim xI, xJ If Not xBol Then Exit Function In the following line, the checkboxes enclosed in double quotes belong to the same group, and each checkbox is separated by a comma. To add more checkbox groups, please enclose the checkboxes in new double quotes. xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10") For xI = LBound(xAllArr) To UBound(xAllArr) If InStr(xAllArr(xI), mCheckBoxName) > 0 Then xBol = False xArrItem = Split(xAllArr(xI), ",") For xJ = LBound(xArrItem) To UBound(xArrItem) If xArrItem(xJ) <> mCheckBoxName Then Me.OLEObjects(xArrItem(xJ)).Object.Value = False End If Next End If Next xBol = True End Function Private Sub Worksheet_Activate() xBol = True End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) xBol = True End Sub
Copy

:

1)在代码中, 复选框1,复选框2, ..., 复选框10 是复选框的名称;
2) 在下一行中,双引号中的复选框属于同一组,每个复选框用逗号分隔。 要添加更多复选框组,请将复选框括在新的双引号中。
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
3)复选框是 ActiveX控件 复选框。

3。 按 其他 + Q 关闭键 Microsoft Visual Basic应用程序 窗口。

然后,当您选中组中的新复选框时,原始选中的复选框将自动取消选中,如下面的 gif 所示。

演示:在 Excel 中选中复选框时取消选中另一个复选框

  Kutools for Excel 包括 300 多种适用于 Microsoft Excel 的强大功能。 免费试用,不受限制 30 天。 现在下载!

最佳办公生产力工具

将小时转化为分钟 Kutools for Excel!

准备好增强您的 Excel 任务了吗? 利用的力量 Kutools for Excel - 您终极的节省时间的工具。 简化复杂的任务并像专业人士一样浏览数据。 以闪电般的速度体验 Excel!

为什么需要 Kutools for Excel

🛠️  超过 300 项强大功能: Kutools 包含 300 多项高级功能,可简化您在 1500 多种场景中的工作。

📈  卓越的数据处理能力:合并单元格、删除重复项并执行高级数据转换 - 所有这些都不费吹灰之力!

⏱️  高效的批量操作:当你可以聪明地工作时,为什么还要付出额外的努力呢? 轻松批量导入、导出、组合和调整数据。

📊  可定制的图表和报告:访问各种附加图表并生成富有洞察力的报告。

🗄️  强大的导航窗格:通过强大的列管理器、工作表管理器和自定义收藏夹获得优势。

📝  七种类型的下拉列表:通过各种功能和类型的下拉列表使数据输入变得轻而易举。

🎓  用户友好:对于初学者来说轻而易举,对于专家来说是一个强大的工具。

立即下载,与 Excel 一起穿越时空!

阅读更多 免费下载... 采购... 
Office Tab 为 Office 带来选项卡式界面,让您的工作更轻松
在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。 每天将您的工作效率提高50%,并减少数百次鼠标单击!
阅读更多 免费下载... 采购... 

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何在不双击Excel的情况下键入或编辑单元格?
下一篇:如何在Excel中一次取消选中或取消选中所有复选框?
相关文章