كيفية إلغاء تحديد خانة اختيار أخرى عند تحديد خانة اختيار في Excel؟
كما هو موضح في الفيديو أدناه، لنفترض أن لديك قائمة مشتريات تحتاج إلى تثبيتها. أثناء مراجعة القائمة، تجد أن العناصر المحددة في بعض الفئات تتجاوز الميزانية وتحتاج إلى إعادة التحديد. نظرًا لأن القائمة طويلة جدًا، فأنت الآن بحاجة إلى طريقة أكثر كفاءة لإلغاء تحديد خانة الاختيار التي تم تحديدها مسبقًا تلقائيًا عند تحديد خانة اختيار جديدة في فئة معينة. يوضح هذا البرنامج التعليمي الطريقة خطوة بخطوة لمساعدتك على إنجاز المهمة.
إلغاء تحديد خانة اختيار أخرى عند تحديد خانة اختيار جديدة باستخدام كود VBA
إلغاء تحديد خانة اختيار أخرى عند تحديد خانة اختيار جديدة باستخدام كود VBA
كما هو موضح في العرض التوضيحي أعلاه، يتم تقسيم عشر خانات اختيار تُسمى Checkbox1 و Checkbox2 وCheckbox3 ... Checkbox10 إلى ثلاث مجموعات وتوزيعها في فئات مختلفة في الجدول.
في هذا المثال، تكون Checkbox1 وCheckbox2 وCheckbox3 في مجموعة واحدة، وCheckbox4 وCheckbox5 وCheckbox6 وCheckbox7 في مجموعة أخرى، وCheckbox8 وCheckbox9 وCheckbox10 في نفس المجموعة. في كل مجموعة، يُسمح بتحديد خانة اختيار واحدة فقط في كل مرة. عند تحديد خانة اختيار، سيتم إلغاء تحديد خانة اختيار أخرى تلقائيًا.
الآن دعونا نرى كيفية تطبيق كود VBA التالي لحل هذه المشكلة.
1. انقر بزر الماوس الأيمن على تبويب الورقة وانقر على عرض الكود من قائمة السياق.
2. في نافذة Microsoft Visual Basic for Applications المفتوحة، انسخ الكود التالي لـ 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. اضغط على مفتاحي Alt + Q لإغلاق نافذة Microsoft Visual Basic for Applications.
ثم عند تحديد خانة اختيار جديدة في المجموعة، سيتم إلغاء تحديد الخانة التي تم تحديدها مسبقًا تلقائيًا كما هو موضح في الصورة المتحركة أدناه.
عرض توضيحي: إلغاء تحديد خانة اختيار أخرى عند تحديد خانة اختيار في Excel
أفضل أدوات الإنتاجية لمكتب العمل
عزز مهاراتك في Excel مع Kutools لـ Excel، واختبر الكفاءة كما لم يحدث من قبل. Kutools لـ Excel يقدم أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يقدم واجهة التبويب لـ Office، ويجعل عملك أسهل بكثير
- تمكين تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint.
- افتح وأنشئ عدة مستندات في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ منفصلة.
- يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات بالماوس يومياً!