Hur avmarkerar man en annan kryssruta när en kryssruta är markerad i Excel?
Som visas i gif-filen nedan, anta att det finns en inköpslista som måste slutföras av dig. När du kontrollerar listan upptäcker du att de markerade objekten i vissa kategorier överskrider budgeten och måste väljas om. Eftersom listan är för lång behöver du nu ett mer effektivt sätt att automatiskt avmarkera den ursprungliga kryssrutan när en ny kryssruta är markerad i en kategori. Denna handledning visar metoden steg-för-steg för att hjälpa dig att få det gjort.
Avmarkera en annan kryssruta när en ny kryssruta är markerad med VBA-kod
Avmarkera en annan kryssruta när en ny kryssruta är markerad med VBA-kod
Som visas i demon ovan, namnges tio kryssrutor Kryssruta 1, Kryssruta 2, Kryssruta 3, ..., Kryssruta 10 är indelade i 3 grupper och placerade i olika kategorier i tabellen.
I det här exemplet är Checkbox1, 2, 3 i en grupp, Checkbox4, 5, 6, 7 är i en grupp och Checkbox8, 9,10 är i samma grupp. I varje grupp får endast en kryssruta markeras åt gången. När en kryssruta är markerad, avmarkeras en annan kryssruta automatiskt.
Låt oss nu se hur du använder följande VBA-kod för att lösa detta problem.
1. Högerklicka på arkfliken och klicka Visa kod från snabbmenyn.
2. I det öppnade Microsoft Visual Basic för applikationer fönstret, klistra in följande VBA-kod i Blad (kod) fönster.
VBA-kod: Avmarkera en annan kryssruta när en ny kryssruta är markerad
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
Anmärkningar:
3. tryck på andra + Q för att stänga Microsoft Visual Basic för applikationer fönster.
När du sedan markerar en ny kryssruta i en grupp, kommer den ursprungliga kryssrutan att avmarkeras automatiskt som visas i gif-filen nedan.
Demo: Avmarkera en annan kryssruta när en kryssruta är markerad i Excel
Kutools för Excel innehåller 300+ kraftfulla funktioner för Microsoft Excel. Gratis att prova utan begränsningar 30 dagar. Ladda ner nu!
De bästa Office-produktivitetsverktygen
Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%
- återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
- Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
- Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
- Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
- Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
- Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
- Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
- Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
- Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare
- Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
- Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
- Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
