Как да направите само едно квадратче за отметка да бъде избрано в група квадратчета за отметка в Excel?
Както е показано на екранната снимка по-долу, за група квадратчета за отметка, изброени в ред 2, когато изберете или поставите отметка само в едно квадратче, другите квадратчета ще бъдат деактивирани. Как да го постигнем? VBA кодът в тази статия може да ви помогне.
Направете само едно квадратче за отметка, което да бъде избрано с VBA код
Направете само едно квадратче за отметка, което да бъде избрано с VBA код
Можете да изпълните кодовете на VBA по-долу, за да изберете само едно квадратче за отметка в група квадратчета за отметка на път. Моля, направете следното.
1. Първо, моля, поставете квадратчетата за отметка, както е необходимо. Тук трябва да вмъкнете Квадратчета за отметка на ActiveX Control както е показана следната екранна снимка:
2. След това натиснете Друг + клавиши F11 едновременно, за да отворите Microsoft Visual Basic за приложения прозорец.
3. В откриването Microsoft Visual Basic за приложения прозорец, кликнете Поставете > Модул за клас.
4. Променете името на класа на ClsChk в (Име) кутия на Имоти панел и след това копирайте и поставете кода на VBA по-долу в съответния код прозорец. Вижте екранна снимка:
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 за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!