Skip to main content

كيفية إلغاء تحديد خانة اختيار أخرى عند تحديد خانة اختيار في Excel؟

Author: Siluvia Last Modified: 2025-05-30

كما هو موضح في الفيديو أدناه، لنفترض أن لديك قائمة مشتريات تحتاج إلى تثبيتها. أثناء مراجعة القائمة، تجد أن العناصر المحددة في بعض الفئات تتجاوز الميزانية وتحتاج إلى إعادة التحديد. نظرًا لأن القائمة طويلة جدًا، فأنت الآن بحاجة إلى طريقة أكثر كفاءة لإلغاء تحديد خانة الاختيار التي تم تحديدها مسبقًا تلقائيًا عند تحديد خانة اختيار جديدة في فئة معينة. يوضح هذا البرنامج التعليمي الطريقة خطوة بخطوة لمساعدتك على إنجاز المهمة.

إلغاء تحديد خانة اختيار أخرى عند تحديد خانة اختيار جديدة باستخدام كود VBA


إلغاء تحديد خانة اختيار أخرى عند تحديد خانة اختيار جديدة باستخدام كود VBA

كما هو موضح في العرض التوضيحي أعلاه، يتم تقسيم عشر خانات اختيار تُسمى Checkbox1 و Checkbox2 وCheckbox3 ... Checkbox10 إلى ثلاث مجموعات وتوزيعها في فئات مختلفة في الجدول.

في هذا المثال، تكون Checkbox1 وCheckbox2 وCheckbox3 في مجموعة واحدة، وCheckbox4 وCheckbox5 وCheckbox6 وCheckbox7 في مجموعة أخرى، وCheckbox8 وCheckbox9 وCheckbox10 في نفس المجموعة. في كل مجموعة، يُسمح بتحديد خانة اختيار واحدة فقط في كل مرة. عند تحديد خانة اختيار، سيتم إلغاء تحديد خانة اختيار أخرى تلقائيًا.

الآن دعونا نرى كيفية تطبيق كود VBA التالي لحل هذه المشكلة.

1. انقر بزر الماوس الأيمن على تبويب الورقة وانقر على عرض الكود من قائمة السياق.

A screenshot showing the option View Code in the context menu of a sheet tab in Excel

2. في نافذة Microsoft Visual Basic for Applications المفتوحة، انسخ الكود التالي لـ VBA في نافذة الورقة (الكود).

A screenshot of the VBA code editor in Excel with example VBA code for managing checkboxes

كود 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

ملاحظات:

1) في الكود، Checkbox1 وCheckbox2 ... Checkbox10 هي أسماء خانات الاختيار؛
2) في السطر التالي، تنتمي خانات الاختيار المحاطة بعلامات اقتباس مزدوجة إلى نفس المجموعة، وكل خانة اختيار مفصولة بفاصلة. لإضافة المزيد من مجموعات خانات الاختيار، يرجى وضع خانات الاختيار داخل علامات اقتباس مزدوجة جديدة.
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
3) خانات الاختيار هي خانات تحكم ActiveX.

3. اضغط على مفتاحي Alt + Q لإغلاق نافذة Microsoft Visual Basic for Applications.

ثم عند تحديد خانة اختيار جديدة في المجموعة، سيتم إلغاء تحديد الخانة التي تم تحديدها مسبقًا تلقائيًا كما هو موضح في الصورة المتحركة أدناه.


عرض توضيحي: إلغاء تحديد خانة اختيار أخرى عند تحديد خانة اختيار في Excel

Kutools لـ Excel: أكثر من 300 أدوات عملية في متناول يدك! استمتع بميزات ذكاء اصطناعي مجانية بشكل دائم! قم بالتنزيل الآن!

أفضل أدوات الإنتاجية لمكتب العمل

🤖 Kutools AI Aide: أحدث ثورة في تحليل البيانات من خلال: التنفيذ الذكي |توليد الشيفرة |إنشاء الصيغ المخصصة |تحليل البيانات وتوليد الرسوم البيانية |استدعاء الوظائف المحسنة
الميزات الشائعة: البحث، تمييز أو وضع علامة على المكررات | حذف الصفوف الفارغة | دمج الأعمدة أو العنوان دون فقدان البيانات | تقريب ...
بحث متقدم: بحث V متعدد المعايير | بحث V متعدد القيم | بحث في عدة ورقات | مطابقة غامضة ....
قائمة منسدلة متقدمة: إنشاء قائمة منسدلة بسرعة | قائمة منسدلة تابعة | قائمة منسدلة متعددة الاختيار ....
إدارة الأعمدة: إضافة عدد محدد من الأعمدة | نقل الأعمدة | تبديل حالة إظهار الأعمدة المخفية | مقارنة النطاق والأعمدة ...
ميزات مميزة: التركيز على الشبكة | عرض التصميم | شريط الصيغ المحسن | أدوات المصنف & أدوات الورقة العمل | مكتبة النص التلقائي (Auto Text) | منتقي التاريخ | دمج البيانات | تشفير/فك تشفير الخلايا | إرسال البريد الإلكتروني حسب القائمة | مرشح متقدم | تصفية خاصة (تصفية الخلايا التي تحتوي على خط عريض/مائل/يتوسطه خط...) ...
أفضل15 مجموعة أدوات:12 أداة نصية (إضافة نص، حذف الأحرف المحددة، ...) | أكثر من50 نوع من الرسوم البيانية (مخطط جانت، ...) | أكثر من40 صيغة عملية (حساب العمر بناءً على تاريخ الميلاد، ...) |19 أداة إدراج (إدراج رمز الاستجابة السريعة، إدراج صورة من المسار، ...) |12 أداة تحويل (تحويل إلى كلمات، تحويل العملة، ...) |7 أدوات دمج وتقسيم (دمج متقدم للصفوف، تقسيم الخلايا، ...) | ... والمزيد

عزز مهاراتك في Excel مع Kutools لـ Excel، واختبر الكفاءة كما لم يحدث من قبل. Kutools لـ Excel يقدم أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...


Office Tab يقدم واجهة التبويب لـ Office، ويجعل عملك أسهل بكثير

  • تمكين تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint.
  • افتح وأنشئ عدة مستندات في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ منفصلة.
  • يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات بالماوس يومياً!