Wie kann man ein anderes Kontrollkästchen deaktivieren, wenn ein Kontrollkästchen in Excel aktiviert ist?
Wie im folgenden Video gezeigt, nehmen wir an, dass Sie eine Einkaufsliste haben, die Sie abschließend bearbeiten müssen. Während Sie die Liste überprüfen, stellen Sie fest, dass die markierten Artikel in einigen Kategorien das Budget überschreiten und neu ausgewählt werden müssen. Da die Liste zu lang ist, benötigen Sie nun eine effizientere Methode, um das ursprünglich markierte Kontrollkästchen automatisch zu deaktivieren, wenn ein neues Kontrollkästchen in einer Kategorie aktiviert wird. Dieses Tutorial zeigt Schritt für Schritt die Methode, um Ihnen dabei zu helfen.
Deaktivieren eines anderen Kontrollkästchens, wenn ein neues Kontrollkästchen mit VBA-Code aktiviert wird
Deaktivieren eines anderen Kontrollkästchens, wenn ein neues Kontrollkästchen mit VBA-Code aktiviert wird
Wie in der obigen Demo gezeigt, sind zehn Kontrollkästchen namens Checkbox1, Checkbox2, Checkbox3, ..., Checkbox10 in 3 Gruppen unterteilt und befinden sich in verschiedenen Kategorien der Tabelle.
In diesem Beispiel befinden sich Checkbox1, 2 und 3 in einer Gruppe, Checkbox4, 5, 6 und 7 in einer anderen Gruppe, und Checkbox8, 9 und 10 sind in derselben Gruppe. In jeder Gruppe darf jeweils nur ein Kontrollkästchen aktiviert sein. Wenn ein Kontrollkästchen aktiviert wird, wird ein anderes Kontrollkästchen automatisch deaktiviert.
Schauen wir uns nun an, wie der folgende VBA-Code angewendet wird, um dieses Problem zu lösen.
1. Klicken Sie mit der rechten Maustaste auf die Registerkarte des Arbeitsblatts und klicken Sie im Kontextmenü auf Ansicht Code.
2. Fügen Sie im geöffneten Fenster Microsoft Visual Basic for Applications den folgenden VBA-Code in das Fenster Sheet (Code) ein.
VBA-Code: Deaktivieren eines anderen Kontrollkästchens, wenn ein neues Kontrollkästchen aktiviert wird
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
Hinweise:
3. Drücken Sie die Tasten Alt + Q, um das Fenster Microsoft Visual Basic for Applications zu schließen.
Dann wird, wenn Sie ein neues Kontrollkästchen in einer Gruppe aktivieren, das ursprünglich markierte automatisch deaktiviert, wie in dem unten stehenden GIF gezeigt.
Demo: Deaktivieren eines anderen Kontrollkästchens, wenn ein Kontrollkästchen in Excel aktiviert ist
Beste Büroproduktivitätswerkzeuge
Verbessern Sie Ihre Excel-Fähigkeiten mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen zur Steigerung der Produktivität und Zeitersparnis. Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...
Office Tab bringt eine Registerkartenoberfläche zu Office und macht Ihre Arbeit viel einfacher
- Aktivieren Sie die Bearbeitung und das Lesen mit Registerkarten in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters, anstatt in neuen Fenstern.
- Steigert Ihre Produktivität um50 % und reduziert täglich hunderte von Mausklicks für Sie!