Як зробити лише один прапорець для вибору в групі прапорців у Excel?
Як показано на скріншоті нижче, для групи прапорців, перелічених у рядку 2, при виборі або встановленні лише одного прапорця, інші прапорці будуть вимкнені. Як цього досягти? Код VBA у цій статті може вам допомогти.
Встановіть лише один прапорець, який потрібно встановити за допомогою коду VBA
Встановіть лише один прапорець, який потрібно встановити за допомогою коду VBA
Ви можете запустити наведені нижче коди VBA, щоб за раз встановити лише один прапорець у групі. Будь ласка, виконайте наступне.
1. По-перше, будь ласка, вставте прапорці, як вам потрібно. Тут слід вставити Прапорці ActiveX Control як показано на наступному скріншоті:
2. Потім натисніть інший + Клавіші F11 одночасно, щоб відкрити Microsoft Visual Basic для додатків вікна.
3. На відкритті Microsoft Visual Basic для додатків вікна, натисніть Insert > Модуль класу.
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. Тепер натисніть Insert > Модулі, а потім скопіюйте та вставте наведений нижче код 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% та зменшує сотні клацань миші для вас щодня!