如何在 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