Как сделать, чтобы в группе флажков в Excel был выбран только один флажок?
Как показано на скриншоте ниже, для группы флажков, перечисленных в строке 2, при выборе или проверке только одного флажка остальные флажки будут отключены. Как этого добиться? Код VBA в этой статье может вам помочь.
Установите только один флажок с кодом VBA
Установите только один флажок с кодом VBA
Вы можете запускать приведенные ниже коды VBA, чтобы устанавливать только один флажок в группе флажков за раз. Пожалуйста, сделайте следующее.
1. Во-первых, установите нужные флажки. Здесь вы должны вставить Флажки управления ActiveX как показано на следующем скриншоте:
2. Затем нажмите другой + Клавиши F11 одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.
3. В дебюте Microsoft Visual Basic для приложений окна, нажмите Вставить > Модуль класса.
4. Измените название класса на КлсЧк в (Фамилия) коробка Объекты панель, а затем скопируйте и вставьте приведенный ниже код VBA в соответствующий Code окно. Смотрите скриншот:
Код VBA 1: устанавливайте только один флажок за раз
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. Теперь щелкните Вставить > Модули, затем скопируйте и вставьте приведенный ниже код VBA в Модули окно.
Код VBA 2: устанавливайте только один флажок за раз
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. нажмите F5 ключ для запуска кода.
С этого момента при установке любого из флажков на листе остальные флажки будут отключены автоматически, и вы можете снять их, чтобы снова активировать все флажки.
Внимание: Если новый флажок добавлен в группу флажков, повторно запустите код VBA, чтобы снова активировать все флажки. При удалении флажка из группы флажков также необходимо перезапустить код.
Rприподнятые статьи:
- Как фильтровать данные по флажку в Excel?
- Как скрыть флажок, когда строка скрыта в Excel?
- Как выделить ячейку или строку с помощью флажка в Excel?
- Как создать выпадающий список с несколькими флажками в Excel?
- Как вставить отметку даты в ячейку, если в Excel установлен флажок?
Лучшие инструменты для офисной работы
Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!