Come deselezionare un'altra casella di controllo quando una casella di controllo è selezionata in Excel?
Come mostrato nel video qui sotto, supponiamo di avere un elenco di acquisto che devi finalizzare. Durante la verifica dell'elenco, noti che gli elementi selezionati in alcune categorie superano il budget e devono essere riconsiderati. Poiché l'elenco è troppo lungo, hai ora bisogno di un metodo più efficiente per deselezionare automaticamente la casella di controllo precedentemente selezionata quando viene selezionata una nuova casella di controllo in una categoria. Questo tutorial illustra passo dopo passo il metodo per aiutarti a completare l'operazione.
Deselezionare un'altra casella di controllo quando una nuova casella di controllo viene selezionata con il codice VBA
Deselezionare un'altra casella di controllo quando una nuova casella di controllo viene selezionata con il codice VBA
Come mostrato nella demo sopra, dieci caselle di controllo denominate Checkbox1, Checkbox2, Checkbox3, ..., Checkbox10 sono divise in 3 gruppi e posizionate in diverse categorie della tabella.
In questo esempio, Checkbox1, 2, 3 appartengono a un gruppo, Checkbox4, 5, 6, 7 a un altro gruppo, e Checkbox8, 9, 10 sono nello stesso gruppo. In ogni gruppo, è consentito selezionare solo una casella di controllo alla volta. Quando una casella di controllo viene selezionata, un'altra casella di controllo viene automaticamente deselezionata.
Ora vediamo come applicare il seguente codice VBA per risolvere questo problema.
1. Fai clic con il tasto destro sul tab del foglio e seleziona Visualizza Codice dal menu contestuale.
2. Nella finestra aperta di Microsoft Visual Basic for Applications, incolla il seguente codice VBA nella finestra Foglio (Codice).
Codice VBA: Deselezionare un'altra casella di controllo quando una nuova casella di controllo viene selezionata
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
Note:
3. Premi i tasti Alt + Q per chiudere la finestra Microsoft Visual Basic for Applications.
Quindi, quando selezioni una nuova casella di controllo in un gruppo, quella precedentemente selezionata verrà automaticamente deselezionata, come mostrato nel gif qui sotto.
Demo: Deselezionare un'altra casella di controllo quando una casella di controllo è selezionata in Excel
I migliori strumenti per la produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!