Jak zaznaczyć tylko jedno pole wyboru w grupie pól wyboru w programie Excel?
Jak pokazano na poniższym zrzucie ekranu, dla grupy pól wyboru wymienionych w wierszu 2, podczas zaznaczania lub zaznaczania tylko jednego pola wyboru pozostałe pola wyboru będą wyłączone. Jak to osiągnąć? Kod VBA w tym artykule może ci pomóc.
Zaznacz tylko jedno pole wyboru za pomocą kodu VBA
Zaznacz tylko jedno pole wyboru za pomocą kodu VBA
Możesz uruchomić poniższe kody VBA, aby wybrać tylko jedno pole wyboru w grupie pól wyboru na raz. Wykonaj następujące czynności.
1. Najpierw wstaw pola wyboru według potrzeb. Tutaj powinieneś wstawić Pola wyboru kontrolki ActiveX jak pokazano na poniższym zrzucie ekranu:
2. Następnie naciśnij inny + F11 jednocześnie, aby otworzyć plik Microsoft Visual Basic for Applications okno.
3. W otwarciu Microsoft Visual Basic for Applications okno, kliknij wstawka > Moduł klasy.
4. Zmień nazwę klasy na ClsChk w (Imię) pudełko pliku Właściwości okienko, a następnie skopiuj i wklej poniższy kod VBA do odpowiedniego pliku Code okno. Zobacz zrzut ekranu:
Kod VBA 1: zaznaczaj tylko jedno pole wyboru na raz
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. Teraz kliknij wstawka > Moduł, a następnie skopiuj i wklej poniższy kod VBA do pliku Moduł okno.
Kod VBA 2: zaznaczaj tylko jedno pole wyboru na raz
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. wciśnij F5 klucz do uruchomienia kodu.
Odtąd, podczas zaznaczania któregokolwiek z pól wyboru w arkuszu, pozostałe pola wyboru zostaną automatycznie wyłączone i można je odznaczyć, aby ponownie aktywować wszystkie pola wyboru.
Note: Jeśli nowe pole wyboru zostanie dodane do grupy pól wyboru, uruchom ponownie kod VBA, aby ponownie aktywować wszystkie pola wyboru. Usunięcie pola wyboru z grupy pól wyboru również wymaga ponownego uruchomienia kodu.
Rwzniosłe artykuły:
- Jak filtrować dane na podstawie pola wyboru w programie Excel?
- Jak ukryć pole wyboru, gdy wiersz jest ukryty w programie Excel?
- Jak wyróżnić komórkę lub wiersz za pomocą pola wyboru w programie Excel?
- Jak utworzyć listę rozwijaną z wieloma polami wyboru w programie Excel?
- Jak wstawić znacznik daty do komórki, jeśli zaznaczono pole wyboru w programie Excel?
Najlepsze narzędzia biurowe
Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas. Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...
Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę
- Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
- Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
- Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!