Note: The other languages of the website are Google-translated. Back to English
English English

كيفية إنشاء قائمة منسدلة مع تحديدات أو قيم متعددة في Excel؟

بشكل افتراضي ، يمكنك تحديد عنصر واحد فقط في القائمة المنسدلة للتحقق من صحة البيانات في Excel. كيف يمكنك إجراء تحديدات متعددة في القائمة المنسدلة كما هو موضح أدناه gif؟ يمكن أن تساعدك الطرق الواردة في هذه المقالة في حل المشكلة.

قم بإنشاء قائمة منسدلة مع تحديدات متعددة باستخدام رمز VBA
يمكنك بسهولة إنشاء قائمة منسدلة مع تحديدات متعددة باستخدام أداة مذهلة

المزيد من البرامج التعليمية للقائمة المنسدلة ...


قم بإنشاء قائمة منسدلة مع تحديدات متعددة باستخدام رمز VBA

يوفر هذا القسم رمزي VBA لمساعدتك في إجراء تحديدات متعددة في القوائم المنسدلة في ورقة العمل. يمكن أن يحقق رمزا VBA:

كود فبا 1: السماح بتحديدات متعددة في قائمة منسدلة بدون تكرارات
كود فبا 2: السماح بتحديدات متعددة في قائمة منسدلة بدون تكرارات (احذف العناصر الموجودة بتحديدها مرة أخرى)

يمكنك تطبيق أحد رموز VBA التالية لإجراء تحديدات متعددة في قائمة منسدلة في ورقة عمل في Excel. الرجاء القيام بما يلي.

1. افتح ورقة العمل التي تحتوي على القوائم المنسدلة للتحقق من صحة البيانات التي تريد إجراء تحديدات متعددة منها. انقر بزر الماوس الأيمن فوق علامة تبويب الورقة وحدد عرض الرمز من قائمة السياق.

2. في ال ميكروسوفت فيسوال باسيك للتطبيقات نافذة ، انسخ رمز فبا أدناه في نافذة الكود. انظر لقطة الشاشة:

كود فبا 1: السماح بتحديدات متعددة في قائمة منسدلة بدون تكرارات

Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 2019/11/13
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    If Target.Count > 1 Then Exit Sub
    On Error Resume Next
    Set xRng = Cells.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then Exit Sub
    Application.EnableEvents = False
    If Not Application.Intersect(Target, xRng) Is Nothing Then
        xValue2 = Target.Value
        Application.Undo
        xValue1 = Target.Value
        Target.Value = xValue2
        If xValue1 <> "" Then
            If xValue2 <> "" Then
                If xValue1 = xValue2 Or _
                   InStr(1, xValue1, ", " & xValue2) Or _
                   InStr(1, xValue1, xValue2 & ",") Then
                    Target.Value = xValue1
                Else
                    Target.Value = xValue1 & ", " & xValue2
                End If
            End If
        End If
    End If
    Application.EnableEvents = True
End Sub

3. اضغط على قديم + Q مفاتيح لإغلاق ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

يمكنك الآن تحديد عناصر متعددة من القائمة المنسدلة في ورقة العمل الحالية.

لنفترض أنك حددت عنصرًا عن طريق الخطأ وتحتاج إلى إزالته دون مسح الخلية بأكملها والبدء من جديد. يمكن أن يقدم لك رمز VBA 2 التالي خدمة.

كود فبا 2: السماح بتحديدات متعددة في قائمة منسدلة بدون تكرارات (احذف العناصر الموجودة بتحديدها مرة أخرى)

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2019/11/13
'Updated by Ken Gardner 2022/07/11
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
Dim semiColonCnt As Integer
If Target.Count > 1 Then Exit Sub
On Error Resume Next
Set xRng = Cells.SpecialCells(xlCellTypeAllValidation)
If xRng Is Nothing Then Exit Sub
Application.EnableEvents = False
'If Not Application.Intersect(Target, xRng) Is Nothing Then
If Application.Intersect(Target, xRng) Then
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" Then
If xValue2 <> "" Then
If xValue1 = xValue2 Or xValue1 = xValue2 & ";" Or xValue1 = xValue2 & "; " Then ' leave the value if only one in list
xValue1 = Replace(xValue1, "; ", "")
xValue1 = Replace(xValue1, ";", "")
Target.Value = xValue1
ElseIf InStr(1, xValue1, "; " & xValue2) Then
xValue1 = Replace(xValue1, xValue2, "") ' removes existing value from the list on repeat selection
Target.Value = xValue1
ElseIf InStr(1, xValue1, xValue2 & ";") Then
xValue1 = Replace(xValue1, xValue2, "")
Target.Value = xValue1
Else
Target.Value = xValue1 & "; " & xValue2
End If
Target.Value = Replace(Target.Value, ";;", ";")
Target.Value = Replace(Target.Value, "; ;", ";")
If InStr(1, Target.Value, "; ") = 1 Then ' check for ; as first character and remove it
Target.Value = Replace(Target.Value, "; ", "", 1, 1)
End If
If InStr(1, Target.Value, ";") = 1 Then
Target.Value = Replace(Target.Value, ";", "", 1, 1)
End If
semiColonCnt = 0
For i = 1 To Len(Target.Value)
If InStr(i, Target.Value, ";") Then
semiColonCnt = semiColonCnt + 1
End If
Next i
If semiColonCnt = 1 Then ' remove ; if last character
Target.Value = Replace(Target.Value, "; ", "")
Target.Value = Replace(Target.Value, ";", "")
End If
End If
End If
End If
Application.EnableEvents = True
End Sub

ملاحظة:

1). لا تسمح القيم المكررة في القائمة المنسدلة.
2). تم تقديم رمز VBA 2 أعلاه بواسطة مستخدمنا المتحمس كين جاردنر في 2022/07/11.
3). يرجى حفظ المصنف كملف مصنف Excel ممكن بماكرو من أجل الحفاظ على عمل الكود في المستقبل.
4). بعد إضافة رمز VBA 2 ، يمكنك إزالة عنصر موجود عن طريق تحديده مرة أخرى في القائمة المنسدلة. انظر الصورة المتحركة أدناه:


يمكنك بسهولة إنشاء قائمة منسدلة مع تحديدات متعددة باستخدام أداة مذهلة

هنا نوصي بشدة بـ قائمة منسدلة متعددة التحديد سمة من سمات كوتولس ل إكسيل لك. باستخدام هذه الميزة ، يمكنك بسهولة تحديد عناصر متعددة من القائمة المنسدلة في نطاق محدد أو ورقة العمل الحالية أو المصنف الحالي أو جميع المصنفات المفتوحة حسب حاجتك.

قبل التطبيق كوتولس ل إكسيلالرجاء قم بتنزيله وتثبيته أولاً.

1. انقر كوتولس > قائمة منسدلة > قائمة منسدلة متعددة التحديد > الإعدادات. انظر لقطة الشاشة:

2. في ال إعدادات قائمة منسدلة متعددة التحديد مربع الحوار ، يرجى تكوين على النحو التالي.

  • 2.1) حدد نطاق التطبيق في التسجيل في الجزء. في هذه الحالة ، أختار ورقة العمل الحالية من النطاق المحدد قائمة منسدلة؛
  • شنومكس) في اتجاه النص القسم ، حدد اتجاه النص بناءً على احتياجاتك ؛
  • شنومكس) في الفاصل مربع ، أدخل المحدد الذي ستستخدمه لفصل القيم المتعددة ؛
  • 2.4) تحقق من لا تقم بإضافة نسخ مكررة في مربع العلاج إذا كنت لا تريد عمل نسخ مكررة في خلايا القائمة المنسدلة ؛
  • شنومكس) انقر فوق OK زر. انظر لقطة الشاشة:

3. الرجاء الضغط كوتولس > قائمة منسدلة > قائمة منسدلة متعددة التحديد لتمكين الميزة.

يمكنك الآن تحديد عناصر متعددة من القائمة المنسدلة في ورقة العمل الحالية أو أي نطاق حددته في الخطوة 2.

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


مقالات ذات صلة:

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

قم بإنشاء قائمة منسدلة من مصنف آخر في Excel
من السهل جدًا إنشاء قائمة منسدلة للتحقق من صحة البيانات بين أوراق العمل داخل المصنف. ولكن إذا كانت بيانات القائمة التي تحتاجها للتحقق من صحة البيانات موجودة في مصنف آخر ، فماذا ستفعل؟ في هذا البرنامج التعليمي ، ستتعلم كيفية إنشاء قائمة منسدلة من مصنف آخر في Excel بالتفصيل.

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

ملء الخلايا الأخرى تلقائيًا عند تحديد القيم في القائمة المنسدلة في Excel
لنفترض أنك قمت بإنشاء قائمة منسدلة بناءً على القيم الموجودة في نطاق الخلايا B8: B14. عند تحديد أي قيمة في القائمة المنسدلة ، فأنت تريد ملء القيم المقابلة في نطاق الخلايا C8: C14 تلقائيًا في خلية محددة. لحل المشكلة ، ستفيدك الطرق الموجودة في هذا البرنامج التعليمي.

المزيد من البرامج التعليمية للقائمة المنسدلة ...


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

Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪

  • إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى
  • دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF
  • أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2019 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.
علامة تبويب kte 201905

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (50)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، شكرًا على الحل والكود. لكن الخطوة التالية هي كيفية التأكد من أن المستخدم لا يختار القيم "المكررة" من القائمة المنسدلة. على سبيل المثال ، إذا كان هناك 4 عناصر في القائمة - البرتقالي والتفاح والموز والخوخ وإذا كان المستخدم قد حدد بالفعل "برتقالي" ، فيجب ألا يسمح Excel للمستخدم بتحديد "برتقالي" أو يجب إزالة هذا الخيار من باقي القائمة. هل يمكنك نشر الكود لإنجاز هذه الميزة. شكرًا. يزدي
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحباً يزدي ، شكراً لك على تعليقك. تم تحديث الرمز ولا توجد قيم مكررة تسمح في القائمة المنسدلة الآن. شكرًا. شروق الشمس
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إنه لأمر رائع أن يسمح هذا بالعديد من الاختيارات ولكن مثلYezdi علق ، أجد أنه سيضيف تكرارًا واحدًا أو أكثر حتى إذا لم أختارها. لذلك ، في الوقت الحالي ، هذا حل بنسبة 80٪ ... تعديل واحد بعيدًا عن الكمال. أنا لست مبرمج VB أو سأقدم الحل.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يمكنك تغيير الكود في الأسطر التالية لمنع التكرارات: If xValue2 "" Then Target.Value = xValue1 & "،" & xValue2 End If To: If xValue2 "" ثم If CheckIfAlready added (xValue1، xValue2) = False ثم الهدف .Value = xValue1 & "،" & xValue2 Else Target.Value = xValue1 End If End If ثم أضف الوظيفة التالية: الوظيفة الخاصة CheckIfAlready added (ByVal sText As String، sNewValue As String) كـ Boolean CheckIfAlready added = False WrdArray () String WrdArray () = Split (sText، "،") لـ i = LBound (WrdArray) إلى UBound (WrdArray) إذا كان الاقتطاع (WrdArray (i)) = Trim (sNewValue) ثم CheckIfAlready = True Next i End Function - من المحتمل وجود وظيفة طرق أفضل لترميزها لكنها تعمل في الوقت الحالي.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أدركت للتو أنني لم أخرج من الحلقة في الوظيفة الجديدة إذا تم تعيين الشرط ، لذلك لا يتعين علينا التحقق من الإدخالات الأخرى.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أهلاً. شكرًا لك على الرمز والإضافة للحد من التكرارات. طلب آخر - ما هي الإضافة / التغيير التي يجب إجراؤها للسماح بالاختيار المتعدد في عمود واحد أو عمودين محددين فقط؟ يقوم هذا الرمز بإعادة إضافة سطور من النص إلى الخلايا "العادية" إذا ذهبت لتصحيح خطأ مطبعي ، أو إجراء تغيير أو إضافة إلى النص في الخلية ، بدلاً من مجرد التصرف "بشكل طبيعي" وقبول التغيير (بدون إعادة إضافة النص بالكامل مرة أخرى). على سبيل المثال ، العمود A هو عمود "عادي". أكتب جملة "ما هي العناصر الثلاثة التي تريدها أكثر؟" العمود B هو عمود "قائمة" حيث أريد فقط أن أكون قادرًا على اختيار قيمة واحدة (في هذه الحالة ، دعنا نقول اسم الطفل). العمود C هو عمود "قائمة" آخر حيث يجب أن يكون المستخدم قادرًا على تحديد عناصر متعددة (وهو ما يسمح لي هذا الرمز بالقيام به بشكل مثالي). مع تقدمي ، أدرك أنني قمت بعمل خطأ مطبعي في العمود A وأريد تصحيحه. كما هو الحال في هذا الرمز ، إذا دخلت (نقرة مزدوجة ، F2) وقمت بالتصحيح على كلمة "عناصر" ، ينتهي بي الأمر بهذه النتيجة في خليتي: "ما هي الأشكال الثلاثة التي تريدها أكثر؟ ما هي الثلاثة؟ العناصر التي تريدها أكثر؟ " شكرًا لك مقدمًا على أي مساعدة (من مستخدم يحب VBA حقًا ، لكنه لا يزال في المراحل الأولى من التعلم!)
تم تصغير هذا التعليق بواسطة المشرف على الموقع
تمكنت من تشغيل الرمز ، ولكن بعد ذلك عندما حفظت المستند (مع تمكين وحدات الماكرو) ، أغلقته وأعدته ، لم يعد الرمز يعمل (على الرغم من أنه كان لا يزال موجودًا). لا أستطيع معرفة الخطأ الذي فعلته. أيه أفكار؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا Cynthia ، إذا لم يرد المؤلف الأصلي ، فسأحصل على إجابة ولكن سأكون أمام الكمبيوتر فقط في 29 ديسمبر مرة أخرى. أنا أيضًا لست مبرمج VBA. ما يمكنك فعله في الوقت الحالي هو بحث Google عن كيفية تحديد رقم العمود والسماح بتشغيل الكود فقط إذا تم تحرير البيانات في هذا العمود (الأعمدة) المحدد. لقد قمت بذلك ولكن الكود موجود على جهاز الكمبيوتر الخاص بعملي ولا يمكنني تذكره في الوقت الحالي ، ربما حاول وضع debug.print على target.column أو أي شيء بهذا المعنى لمعرفة ما إذا كان يمنحك رقم العمود الذي يتم تحريره . آسف جينيفر ، لست متأكدة من المشكلة التي تواجهها :(
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Cynthia ، إذا كان لا يزال مطلوبًا ، يجب أن تكون قادرًا على القيام بشيء مثل هذا للتأكد فقط من تشغيل الكود على أعمدة محددة ، في حالتي ، العمود 34 و 35: إذا (الهدف ، العمود 34 والهدف ، العمود 35) ثم قم بالخروج الفرعي ضع هذا الرمز في البداية بعد عباراتك المعتمة
تم تصغير هذا التعليق بواسطة المشرف على الموقع
[اقتباس] @ سينثيا ، إذا كان لا يزال مطلوبًا ، يجب أن تكون قادرًا على القيام بشيء كهذا للتأكد فقط من تشغيل الكود على أعمدة محددة ، في حالتي ، العمود 34 و 35: إذا (الهدف. العمود 34 والهدف. العمود 35) ثم Exit Sub 'ضع هذا الرمز في البداية بعد عباراتك المعتمةبواسطة ميرفين[/ quote] مرحبًاMervyn ، فقد مسار الموضوع تمامًا ، لكن شكرًا جزيلاً لك على ردودك. لقد حاولت تطبيق If (Target. الخطأ '34': الكائن لا يدعم هذه الخاصية أو هذه الطريقة خطأ في هذا السطر الجديد. فيما يلي الأسطر القليلة الأولى من الكود الخاص بي: Private Sub Worksheet_Change (ByVal Target As Range) Dim xRng As Range Dim xValue35 As String Dim xValue4 كسلسلة If (Target.Column5 And Target.Column438) ثم اخرج من Sub If Target.Count> 1 ثم قم بإنهاء Sub عند الخطأ ، واستأنف التالي تحتوي ورقة العمل الخاصة بي على 2 أعمدة فقط: سؤال | إجابة | فئة | فئة فرعية | علامات | ارتباط صورة أحتاج فقط إلى قوائم منسدلة متعددة القيم في الفئات الفرعية والعلامات (العمودين 4 و 5). سأستمر في البحث عن المعلومات كما اقترحت في 1/6 ، وسألقي نظرة على الرابط الذي قدمته المؤسسة الخيرية.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إذا كان Target.Column <> 34 ثم اخرج من Sub

ضع هذا الرمز في البداية بعد عباراتك المعتمة
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، أنا أستخدم هذه الصيغة حاليًا وجميع الأعمدة التي تحتوي على التحقق من صحة البيانات لديها خيار التحديد المتعدد الآن ، ومع ذلك أريد أن أقصر التحديد المتعدد على عمود واحد فقط. هل يمكن لشخص ما تحرير هذه الصيغة لي بحيث يمكن تطبيق التحديد المتعدد فقط على Column4؟ شكرًا :) Private Sub Worksheet_Change (ByVal Target As Range) 'تم التحديث: 2016/4/12 Dim xRng كنطاق Dim xValue1 مثل String Dim xValue2 as String If Target.Count> 1 ثم قم بإنهاء Sub عند الخطأ واستأنف المجموعة التالية xRng = خلايا. SpecialCells (xlCellTypeAllValidation) إذا لم يكن xRng شيئًا ، فاخرج من التطبيق الفرعي .EnableEvents = False If Not Application.Intersect (Target ، xRng) لا شيء إذًا xValue2 = Target.Value Application.Undo xValue1 = Target.Value Target.Value = xValue2 "إذا كان xValue1" "ثم إذا كانت xValue2" "ثم إذا كانت xValue1 = xValue2 أو _ InStr (1، xValue1،"، "& xValue2) أو _ InStr (1، xValue1، xValue2 &"، ") ثم Target.Value = xValue1 Else Target.Value = xValue1 & "،" & xValue2 End If End If End If End If Application.EnableEvents = True End Sub سيتم تقدير أي مساعدة!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يعمل هذا بشكل جيد ، لكن لا يمكنني إزالة عنصر بمجرد تحديده. أي اقتراحات في حالة النقر فوق شيء ما عن طريق الخطأ وأحتاج إلى إزالته دون (نأمل) مسح الخلية بأكملها والبدء من جديد؟ أيضًا ، بالنسبة لأولئك الذين يسعون إلى تحديد عمود أو أعمدة ، تحتوي السياقات على إضافة رائعة إلى الكود المقدم هنا والذي يتيح لك القيام بذلك. http://www.contextures.com/excel-data-validation-multiple.html#column
تم تصغير هذا التعليق بواسطة المشرف على الموقع
[اقتباس] هذا يعمل بشكل جيد ، لكنني غير قادر على إزالة عنصر بمجرد تحديده. أي اقتراحات في حالة النقر فوق شيء ما عن طريق الخطأ وأحتاج إلى إزالته دون (نأمل) مسح الخلية بأكملها والبدء من جديد؟ أيضًا ، بالنسبة لأولئك الذين يسعون إلى تحديد عمود أو أعمدة ، تحتوي السياقات على إضافة رائعة إلى الكود المقدم هنا والذي يتيح لك القيام بذلك. http://www.contextures.com/excel-data-validation-multiple.html#columnعن طريق الصدقة[/ اقتباس] كود يعمل بشكل جيد. ومع ذلك ، لا يمكنني إلغاء تحديد عنصر. عندما أرغب في إزالة عنصر من التحديد ، لا تتم إزالته فقط. هل يعاني أي شخص آخر من هذه المشكلة أيضًا؟ [/ quote] مرحبًا بالجميع ، أي حلول تم العثور عليها لهذه المشكلة .. يرجى المشاركة ..
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، Code يعمل بشكل جيد. ومع ذلك ، لا يمكنني إلغاء تحديد عنصر. عندما أرغب في إزالة عنصر من التحديد ، لا تتم إزالته فقط. هل يعاني أي شخص آخر من هذه المشكلة أيضًا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل كان هناك رد على هذه القضية. إنها نفس المشكلة التي أواجهها. يبدو أنه لا توجد طريقة لإزالة عنصر تم تحديده.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
احذف المحتوى في الخلية ، ثم أعد التحديد
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا بالجميع ، لدي هذا الرمز في ورقة Excel وتنظيفه للمحتويات من القائمة المنسدلة عند تحديد الخلية - أعرف أي جزء من الكود يقوم بذلك (الجزء الذي يقول 'fillRng.ClearContents') وأنا حاولت استخدام بعض ما سبق لإصلاحه دون جدوى ... أنا جديد في برمجة VBA وما إلى ذلك. هل يمكن لأي شخص تقديم أي مساعدة حول كيفية تغييرها بحيث لا يتم مسحها عند تحديد الخلية ولن يتم مكررة من فضلك ؟؟ خيار تعبئة خافت صريح كنطاق ورقة عمل فرعية خاصة ، SelectionChange (هدف ByVal كنطاق) مؤهل خافت كـ MSForms.ListBox Dim LBobj كـ OLEObject Dim i As Long Set LBobj = Me.OLEObjects ("ListBox1") Set Qualifiers = LBobj.Object If Target.Row > 3 And Target.Column = 3 ثم قم بتعيين fillRng = Target مع LBobj. Not fillRng ليس شيئًا ، ثم قم بملء Rng.ClearContents With Qualifiers If .ListCount 155 ثم For i = 0 To .ListCount - 0 If fillRng.Value = "" ثم If. Selected (i) ثم fillRng.Value = .List (i) Else If .Selected (i) ثم fillRng.Value = _ fillRng.Value & "،" & .List (i) End If Next End If For i = 1 To .ListCount - 0. Selected (i) = False Next End With Set fillRng = لا شيء ينتهي إذا انتهى إذا انتهى Sub
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا بالجميع ، يمكنني عمل القائمة المنسدلة بشكل مثالي ، لكن سؤالي هو: عندما أقوم بتحديد جميع العناصر المضمنة ، فإنها تنتقل واحدة تلو الأخرى بطريقة أفقية عبر الخلية ، على سبيل المثال: أصفر ، أخضر ، أسود ، أحمر. ولكن كيف يمكنني أن أجعلها تبدو بطريقة رأسية؟ هل يمكن أن تخبرني إذا كان هناك أي طريقة للقيام بذلك ؟. شكرا لك ديزيريه
تم تصغير هذا التعليق بواسطة المشرف على الموقع
تمكنت من استخدام هذا الرمز وأنشأت بنجاح العديد من المربعات المنسدلة للاختيار. لقد نجحت عندما أغلقت وأعيد فتحها في أيام مختلفة. ومع ذلك ، لا تسمح الآن جميع الخلايا التي حددتها في الأصل بالاختيار المتعدد. فقط تلك التي تم إجراؤها مسبقًا ، على الرغم من استخدام الرمز لجدول البيانات بأكمله. هل يمكنك المساعدة؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
انا لدى نفس المشكله.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
من المرجح أن تكون الخلايا مؤمنة ، انقر بزر الماوس الأيمن فوقها جميعًا ، وانتقل إلى تنسيق الخلايا ، والحماية ، ثم قم بإلغاء تحديد خيار الخلية المقفلة
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لقد أنشأت قائمة منسدلة حيث يمكن اختيار عدة اختيارات نصية مثل "التغذية" و "الوزن" و "العمل" لسبب اتصال كل متصل بالاتصال. لدي صفحة ملخص حيث أريد معرفة عدد كل سبب تمت الإشارة إليها في شهر معين. ما الصيغة التي سأستخدمها لإخبار Excel بسحب وإحصاء كل منها على حدة في شهر معين؟ حاليًا ، الطريقة التي أعددتها بها ، يتم حسابها بشكل صحيح فقط إذا كان لدي سبب واحد في الخلية لكل متصل.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يوم جيد،
آسف لا أستطيع مساعدتك في حل هذه المشكلة. واسمحوا لي أن أعرف إذا وجدت الجواب.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أحاول إنشاء 4 أعمدة بقوائم منسدلة حيث يمكنني تحديد قيم متعددة. كيف يمكنني تعديل رمز VBA "القائمة المنسدلة مع تحديدات متعددة" بحيث عندما أقوم بالنقر فوق قيمة تم إدخالها بالفعل ، يتم إزالتها من الخلية؟ شكرا لكم مقدما.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي راندي ،
ماذا تقصد "عندما أقوم بالنقر فوق قيمة تم إدخالها بالفعل ، فإنها تزيلها من الخلية؟"
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لدي نفس السؤال. لا تتذكر القائمة المنسدلة القيم المختارة. إذا نقر شخص ما على خلية تم ملؤها بالفعل (ليس بواسطته ، ولكن شخص آخر) ، فسيتم مسح القيم المحددة وتصبح الخلية فارغة مرة أخرى.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أنا أستخدم الكود أدناه للسماح بالتحديد المتعدد في أوراق عمل متعددة ولكن عندما أذهب إلى ورقة عمل أخرى في المصنف ، يختفي التحديد المتعدد. عندما أحفظ الملف وأعود إليه ، سيعمل في علامة تبويب واحدة تحتوي على الكود ولكن مرة أخرى عندما أنقر على علامة تبويب أخرى مع الرمز لم يعد يعمل. هل لديك أي فكرة عن كيفية إصلاحها ، لذا إذا قمت بالنقر فوق ورقة عمل تحتوي على رمز VBA ، فستسمح دائمًا بالاختيار المتعدد؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، ich bin totaler VBA Laie. Ich versuche den Code so zu modifizieren، dass
أ) يموت Mehrfachauswahl nicht in allen، sondern nur ein zwei Spalten aktiv ist
ب) ich العناصر auch wieder rausnehmen kann، zB in dem ich in der Listenauswahl das Item noch einmal anklicke (Beispiel: ich habe über die Mehrfachauswahl ausgewählt: A، D، X، Y ... gehört. Beim aktuellen Code müsste ich Eingaben entfernen und neu auswählen).
ويرجع الفضل في ذلك مسبقا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لا يمكنني المضي قدمًا في إنشاء التحديد المتعدد للقائمة المنسدلة. لقد استمعت إلى البرنامج التعليمي وقرأت المواد ولكني ما زلت غير قادر على الإنشاء. هل يمكن لأي شخص أن يساعدني من فضلك؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أعلم أن هذا قد يكون عشوائيًا كليًا ، لكنني أستخدم نوعًا مختلفًا من VBA بدون مشكلة. باستثناء صفحة واحدة ، إذا حددت الخيارات الثلاثة الأولى ، فلن تسمح لك بتحديد الخيار الرابع. سيتيح لك تحديد الخيار الخامس والسادس وما إلى ذلك ، وليس الخيار الرابع فقط. أفكار؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا روبرت،
لقد اختبرت الكود ولكن لم أجد المشكلة كما ذكرت. هل يمكنك إخباري بإصدار Excel الذي تستخدمه؟ شكرا لك على تعليقك.
لا توجد تعليقات منشورة هنا حتى الآن
عرض المزيد
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة