كيفية إنشاء مربع اختيار واحد فقط ليتم تحديده في مجموعة مربعات الاختيار في Excel؟
كما هو موضح في لقطة الشاشة أدناه ، بالنسبة لمجموعة من مربعات الاختيار المدرجة في الصف 2 ، عند تحديد أو تحديد خانة اختيار واحدة فقط ، سيتم تعطيل مربعات الاختيار الأخرى. كيف يتم تحقيق ذلك؟ يمكن أن يساعدك رمز VBA في هذه المقالة.
قم بعمل مربع اختيار واحد فقط ليتم تحديده برمز VBA
قم بعمل مربع اختيار واحد فقط ليتم تحديده برمز VBA
يمكنك تشغيل رموز VBA أدناه لتحديد خانة اختيار واحدة فقط في مجموعة مربعات الاختيار في كل مرة. الرجاء القيام بما يلي.
1. أولاً ، يرجى إدخال مربعات الاختيار حسب حاجتك. هنا ، يجب عليك إدخال ملف خانات الاختيار عنصر تحكم ActiveX كما تظهر لقطة الشاشة التالية:
2. ثم اضغط قديم + F11 في نفس الوقت لفتح ملف ميكروسوفت فيسوال باسيك للتطبيقات نافذة.
3. في الافتتاح ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق إدراج > وحدة الفصل.
4. قم بتغيير اسم الفصل إلى ClsChk في ال (الاسم) مربع من عقارات ، ثم انسخ والصق رمز فبا أدناه في الملف المقابل رمز نافذة او شباك. انظر لقطة الشاشة:
كود فبا 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 أدناه في ملف وحدة نافذة.
كود فبا 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 باستخدام Kutools for Excel، واختبر كفاءة لم يسبق لها مثيل. يقدم Kutools for Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير
- تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
- فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
- يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!