Come selezionare solo una casella di controllo in un gruppo di caselle di controllo in Excel?
Come mostrato nell'immagine sottostante, per un gruppo di caselle di controllo elencate nella riga 2, quando si seleziona o si seleziona solo una casella di controllo, le altre caselle di controllo saranno disabilitate. Come ottenerlo? Il codice VBA in questo articolo può aiutarti.
Seleziona solo una casella di controllo con il codice VBA
Seleziona solo una casella di controllo con il codice VBA
Puoi eseguire i seguenti codici VBA per selezionare solo una casella di controllo in un gruppo di caselle di controllo alla volta. Si prega di fare quanto segue.
1. Innanzitutto, inserisci le caselle di controllo di cui hai bisogno. Qui dovresti inserire il file Caselle di controllo ActiveX Control come mostrato nella seguente schermata:
2. Quindi premere altro + F11 contemporaneamente per aprire il file Microsoft Visual Basic, Applications Edition finestra.
3. In apertura Microsoft Visual Basic, Applications Edition finestra, fare clic inserire > Modulo di classe.
4. Modificare il nome della classe in Cls Chk nel (Nome) scatola del Properties riquadro, quindi copia e incolla il codice VBA sottostante nel file Code finestra. Vedi screenshot:
Codice VBA 1: seleziona solo una casella di controllo alla volta
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
5. Ora fai clic su inserire > Moduli, quindi copia e incolla il codice VBA sottostante nel file Moduli finestra.
Codice VBA 2: seleziona solo una casella di controllo alla volta
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
6. premi il F5 chiave per eseguire il codice.
D'ora in poi, quando si seleziona una qualsiasi delle caselle di controllo nel foglio di lavoro, le altre caselle di controllo verranno disabilitate automaticamente e sarà possibile deselezionarle per attivare nuovamente tutte le caselle di controllo.
Note:: Se viene aggiunta una nuova casella di controllo al gruppo di caselle di controllo, eseguire nuovamente il codice VBA per attivare nuovamente tutte le caselle di controllo. Eliminando la casella di controllo dal gruppo di caselle di controllo è necessario rieseguire anche il codice.
Rarticoli euforici:
- Come filtrare i dati in base alla casella di controllo in Excel?
- Come nascondere la casella di controllo quando la riga è nascosta in Excel?
- Come evidenziare una cella o una riga con la casella di controllo in Excel?
- Come creare un elenco a discesa con più caselle di controllo in Excel?
- Come inserire il timbro della data in una cella se è stata selezionata una casella di controllo in Excel?
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!