Come deselezionare un'altra casella di controllo quando una casella di controllo è selezionata in Excel?
Come mostrato nella gif qui sotto, supponiamo che ci sia un elenco di acquisti che deve essere finalizzato da te. Durante il controllo dell'elenco, scopri che gli elementi selezionati in alcune categorie superano il budget e devono essere riselezionati. Poiché l'elenco è troppo lungo, ora è necessario un modo più efficiente per deselezionare automaticamente la casella di controllo originale selezionata quando viene selezionata una nuova casella di controllo in una categoria. Questo tutorial mostra il metodo passo dopo passo per aiutarti a farlo.
Deseleziona un'altra casella di controllo quando viene selezionata una nuova casella di controllo con il codice VBA
Deseleziona un'altra casella di controllo quando viene selezionata una nuova casella di controllo con il codice VBA
Come mostrato nella demo sopra, dieci caselle di controllo denominate Casella di controllo1, Casella di controllo2, Casella di controllo3, ..., Casella di controllo10 sono divisi in 3 gruppi e collocati in diverse categorie nella tabella.
In questo esempio, Checkbox1, 2, 3 sono in un gruppo, Checkbox4, 5, 6, 7 sono in un gruppo e Checkbox8, 9,10 sono nello stesso gruppo. In ogni gruppo è possibile selezionare solo una casella di controllo alla volta. Quando una casella di controllo è selezionata, un'altra casella di controllo viene deselezionata automaticamente.
Ora vediamo come applicare il seguente codice VBA per risolvere questo problema.
1. Fare clic con il pulsante destro del mouse sulla scheda del foglio e fare clic Visualizza codice dal menu di scelta rapida.
2. In aperto Microsoft Visual Basic, Applications Edition window , incolla il seguente codice VBA in Foglio (Codice) finestra.
Codice VBA: deseleziona un'altra casella di controllo quando viene selezionata una nuova casella di controllo
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 il altro + Q i tasti per chiudere il file Microsoft Visual Basic, Applications Edition finestra.
Quindi, quando selezioni una nuova casella di controllo in un gruppo, quella selezionata originale verrà deselezionata automaticamente come mostrato nella gif di seguito.
Demo: deseleziona un'altra casella di controllo quando una casella di controllo è selezionata in Excel
Kutools for Excel include oltre 300 potenti funzionalità per Microsoft Excel. Prova gratuita senza limitazioni per 30 giorni. Scarica ora!
I migliori strumenti per la produttività in ufficio
Potenzia le tue competenze di Excel con Kutools per Excel e sperimenta l'efficienza come mai prima d'ora. Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Fai clic qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab porta l'interfaccia a schede in Office e semplifica notevolmente il tuo lavoro
- 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, piuttosto che in nuove finestre.
- Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!