如何在 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 中只允许在一个复选框组中选择一个复选框,以突出显示特定数据集。
广告