Как снять другой флажок, когда флажок установлен в Excel?
Как показано на картинке ниже, предположим, что у вас есть список покупок, который вы должны доработать. При проверке списка вы обнаружите, что отмеченные элементы в некоторых категориях превышают бюджет, и их необходимо выбрать повторно. Поскольку список слишком длинный, теперь вам нужен более эффективный способ автоматического снятия флажка с исходным отмеченным флажком, когда в категории устанавливается новый флажок. Этот учебник демонстрирует метод шаг за шагом, чтобы помочь вам сделать это.
Снимите флажок с другого флажка, когда новый флажок установлен с помощью кода VBA
Снимите флажок с другого флажка, когда новый флажок установлен с помощью кода VBA
Как показано в приведенной выше демонстрации, десять флажков с именами Флажок1, Флажок2, Флажок3..., Флажок10 разбиты на 3 группы и расположены в разных категориях в таблице.
В этом примере Checkbox1, 2, 3 находятся в одной группе, Checkbox4, 5, 6, 7 находятся в одной группе и Checkbox8, 9,10 находятся в той же группе. В каждой группе одновременно может быть установлен только один флажок. Когда флажок установлен, другой флажок автоматически снимается.
Теперь давайте посмотрим, как применить следующий код VBA для решения этой проблемы.
1. Щелкните правой кнопкой мыши вкладку листа и выберите Просмотреть код из контекстного меню.
2. В открывшемся Microsoft Visual Basic для приложений window , вставьте следующий код VBA в Лист (Код) окно.
Код VBA: снимите другой флажок, когда установлен новый флажок
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
Заметки:
3. нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно.
Затем, когда вы устанавливаете новый флажок в группе, исходный отмеченный флажок будет автоматически снят, как показано на рисунке ниже.
Демонстрация: Снимите еще один флажок, когда флажок установлен в Excel
Kutools for Excel включает более 300 мощных функций для Microsoft Excel. Бесплатная пробная версия без ограничений в течение 30 дней. Скачать сейчас!
Лучшие инструменты для офисной работы
Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!