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