如何在 Excel 中只允许一个复选框在一个复选框组中被选中?
在 Excel 中,复选框是用户从选项列表中进行选择的一种便捷方式。但是,有时您希望将一组复选框的选择限制为一次只能选择一个复选框。在设计表单、调查或其他必须进行互斥选择的情况时,这尤其有用。
在本教程中,我们将了解如何使用 Excel 强制执行单选复选框。在本课程结束时,无论您对 Excel 的熟悉程度如何,您都将能够自信地应用这些方法来构建一组一次只能选择一个复选框的复选框,从而简化选择过程,成为 Excel 复选框选择限制大师!
只允许一个复选框在一个复选框组中被选中
这里我们将首先创建一个类模块,然后创建一个 VBA 模块,最后运行它来完成任务。让我们来看一个简单的过程,了解如何在 Excel 中只允许一个复选框在一个复选框组中被选中。
步骤 1
考虑一个 Excel 表格,其中包含多个复选框。
首先,右键单击工作表名称,然后选择“查看代码”以打开 VBA 应用程序。
右键点击 > 查看代码。
步骤 2
然后单击“插入”,选择“类模块”,然后将以下代码复制到文本框中。
插入 > 类模块 > 复制。
代码
Option Explicit
Public WithEvents Chk As MSForms.CheckBox
Private Sub Chk_Click()
Call SelOneCheckBox(Chk)
End Sub
Sub SelOneCheckBox(Target As Object)
Dim xObj As Object
Dim I As String
Dim n As Integer
If Target.Object.Value = True Then
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Value = False
xObj.Object.Enabled = False
End If
Next
Else
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Enabled = True
End If
Next
End If
End Sub

步骤 3
然后将类名称更改为 ClsChk。

步骤 4
然后再次单击“插入”,选择“模块”,并将以下代码复制到文本框中。
插入 > 模块 > 复制。
代码
Dim xCollection As New Collection
Public Sub ClsChk_Init()
Dim xSht As Worksheet
Dim xObj As Object
Dim xChk As ClsChk
Set xSht = ActiveSheet
Set xCollection = Nothing
For Each xObj In xSht.OLEObjects
If xObj.Name Like "CheckBox**" Then
Set xChk = New ClsChk
Set xChk.Chk = CallByName(xSht, xObj.Name, VbGet)
xCollection.Add xChk
End If
Next
Set xChk = Nothing
End Sub

步骤 5
然后单击 F5 运行模块。然后您将看到一次只能选中一个复选框。

结论
在本教程中,我们使用了一个简单的示例来演示如何在 Excel 中只允许在一个复选框组中选择一个复选框,以突出显示特定数据集。
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP