Note: The other languages of the website are Google-translated. Back to English

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:

1) Nel codice, Casella di controllo1, Casella di controllo2, ..., Casella di controllo10 sono il nome delle caselle di controllo;
2) Nella riga successiva, le caselle racchiuse tra virgolette appartengono allo stesso gruppo e ciascuna casella è separata da una virgola. Per aggiungere più gruppi di caselle di controllo, racchiudere le caselle di controllo tra nuove virgolette.
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
3) Le caselle di controllo sono controllo ActiveX caselle di controllo.

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. Liberi di provare senza limitazioni 30 giorni; Scarica ora!


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office/Excel 2007-2021 e 365. Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il 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!
fondo officetab
Commenti (0)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL