Как снять другой флажок, когда флажок установлен в 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 дней. Скачать сейчас!
Лучшие инструменты для работы в офисе
Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
