Hogyan lehet csak egy jelölőnégyzetet bejelölni az Excel jelölőnégyzet-csoportjában?
Amint az alábbi képernyőképen látható, a 2. sorban szereplő jelölőnégyzetek csoportja esetében, ha csak egy jelölőnégyzetet jelöl be vagy jelöl be, a többi jelölőnégyzet letiltásra kerül. Hogyan lehet elérni? Ebben a cikkben szereplő VBA-kód segíthet.
Csak egy jelölőnégyzetet jelöljön ki VBA kóddal
Csak egy jelölőnégyzetet jelöljön ki VBA kóddal
Az alábbi VBA kódok futtatásával egyszerre csak egy jelölőnégyzetet jelölhet ki a jelölőnégyzet csoportban. Kérjük, tegye a következőket.
1. Először kérjük, illessze be a jelölőnégyzeteket. Ide kell beillesztenie a ActiveX Control jelölőnégyzetek a következő képernyőképen:
2. Ezután nyomja meg a gombot más + F11 billentyűk egyszerre a Microsoft Visual Basic for Applications ablak.
3. A nyílásban Microsoft Visual Basic for Applications ablakban kattintson betétlap > Osztály modul.
4. Módosítsa az osztály nevét erre: ClsChk ban,-ben (Név) rovat Ingatlanok ablaktáblán, majd másolja és illessze be az alábbi VBA kódot a megfelelőbe Kód ablak. Lásd a képernyőképet:
1. VBA-kód: Csak egyszer jelöljön be négyzetet
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. Most kattintson betétlap > Modulok, majd másolja és illessze be az alábbi VBA kódot a Modulok ablak.
2. VBA-kód: Csak egyszer jelöljön be négyzetet
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. megnyomni a F5 gombot a kód futtatásához.
Mostantól a munkalap bármelyik jelölőnégyzetének bejelölésekor a többi jelölőnégyzet automatikusan letiltásra kerül, és az összes jelölőnégyzet újbóli aktiválásához törölheti a jelölést.
Megjegyzések: Ha új jelölőnégyzet kerül a jelölőnégyzet csoportba, futtassa újra a VBA kódot az összes jelölőnégyzet újbóli aktiválásához. A jelölőnégyzet törléséhez a jelölőnégyzetből újra kell futtatni a kódot is.
Rfelemelt cikkek:
- Hogyan szűrhetők az adatok az Excel jelölőnégyzete alapján?
- Hogyan lehet elrejteni a jelölőnégyzetet, ha a sor el van rejtve az Excelben?
- Hogyan lehet kiemelni a cellát vagy sort az Excel jelölőnégyzetével?
- Hogyan hozhat létre legördülő listát több jelölőnégyzettel az Excelben?
- Hogyan lehet beilleszteni a dátumbélyegzőt egy cellába, ha bejelöli az Excel jelölőnégyzetét?
A legjobb irodai hatékonyságnövelő eszközök
Töltsd fel Excel-készségeidet a Kutools for Excel segítségével, és tapasztald meg a még soha nem látott hatékonyságot. A Kutools for Excel több mint 300 speciális funkciót kínál a termelékenység fokozásához és az időmegtakarításhoz. Kattintson ide, hogy megszerezze a leginkább szükséges funkciót...
Az Office lap füles felületet hoz az Office-ba, és sokkal könnyebbé teszi a munkáját
- Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
- Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
- 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!