Přejít k hlavnímu obsahu

Jak zrušit zaškrtnutí dalšího políčka, když je políčko zaškrtnuté v aplikaci Excel?

Autor: Siluvia Naposledy změněno: 2024-12-09

Jak je ukázáno ve videu níže, předpokládejme, že existuje nákupní seznam, který musíte dokončit. Při kontrole seznamu zjistíte, že zaškrtnuté položky v některých kategoriích překračují rozpočet a je třeba je znovu vybrat. Protože je seznam příliš dlouhý, potřebujete nyní efektivnější způsob, jak automaticky zrušit zaškrtnutí původně zaškrtnutého políčka, když je v kategorii zaškrtnuto nové políčko. Tento tutoriál ukazuje metodu krok za krokem, která vám pomůže to udělat.

Zrušte zaškrtnutí dalšího políčka, když je zaškrtnuto nové políčko s kódem VBA


Zrušte zaškrtnutí dalšího políčka, když je zaškrtnuto nové políčko s kódem VBA

Jak je ukázáno ve výše uvedené ukázce, deset zaškrtávacích políček pojmenovaných Zaškrtávací políčko 1, Zaškrtávací políčko 2, Zaškrtávací políčko 3, ..., Zaškrtávací políčko 10 jsou rozděleny do 3 skupin a jsou umístěny v různých kategoriích v tabulce.

V tomto příkladu jsou Checkbox1, 2, 3 v jedné skupině, Checkbox4, 5, 6, 7 jsou v jiné skupině a Checkbox8, 9,10 jsou ve stejné skupině. V každé skupině je povoleno zaškrtnout vždy pouze jedno zaškrtávací políčko. Když je zaškrtnuto políčko, automaticky se zruší zaškrtnutí dalšího políčka.

Nyní se podívejme, jak použít následující kód VBA k vyřešení tohoto problému.

1. Klepněte pravým tlačítkem na záložku listu a klepněte Zobrazit kód z kontextové nabídky.

Snímek obrazovky zobrazující možnost Zobrazit kód v kontextové nabídce karty listu v Excelu

2. V otevřeném Microsoft Visual Basic pro aplikace okno, vložte následující kód VBA do List (kód) okno.

Snímek obrazovky editoru kódu VBA v aplikaci Excel s příkladem kódu VBA pro správu zaškrtávacích políček

Kód VBA: Zrušte zaškrtnutí dalšího políčka, když je zaškrtnuto nové políčko

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

Poznámky:

1) V kódu, Checkbox1, Checkbox2, ..., Zaškrtávací políčko 10 jsou názvy zaškrtávacích políček;
2) V následujícím řádku patří zaškrtávací políčka uzavřená v uvozovkách do stejné skupiny a každé zaškrtávací políčko je odděleno čárkou. Chcete-li přidat další skupiny zaškrtávacích políček, uzavřete zaškrtávací políčka do nových dvojitých uvozovek.
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
3) Zaškrtávací políčka jsou Ovládací prvek ActiveX zaškrtávací políčka.

3. zmáčkni Další + Q klávesy pro zavření Microsoft Visual Basic pro aplikace okno.

Když pak zaškrtnete nové zaškrtávací políčko ve skupině, původní zaškrtnuté políčko se automaticky zruší, jak je znázorněno na obrázku níže.


Demo: Zrušte zaškrtnutí dalšího políčka, když je políčko zaškrtnuté v Excelu

Kutools for Excel: Více než 300 užitečných nástrojů na dosah ruky! Užijte si trvale bezplatné funkce AI! Stáhnout nyní!

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  vzývat Kutools Funkce...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více
Použijte Kutools ve vašem preferovaném jazyce – podporuje angličtinu, španělštinu, němčinu, francouzštinu, čínštinu a více než 40 dalších!

Vylepšete si své excelové dovednosti s Kutools for Excela zažijte efektivitu jako nikdy předtím. Kutools for Excel Nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...


Office Tab Přináší do Office rozhraní s kartami a výrazně vám usnadňuje práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!