جدول المحتويات
في هذه المقالة ، سأوضح لك كيف يمكنك تحليل الموقف في Excel VBA إذا كانت الخلية تحتوي على قيمة. ستتعلم كيفية تحليل الموقف لكل من أي قيمة وقيمة معينة.
تحليل Excel VBA: إذا كانت الخلية تحتوي على قيمة ، فحينئذٍ (عرض سريع)
9141
تنزيل Practice Workbook
تنزيل هذا المصنف التدريبي للتمرين أثناء قراءة هذه المقالة.
VBA إذا كانت الخلية تحتوي على قيمة بعد ذلك. xlsm
تحليل Excel VBA: إذا كانت الخلية تحتوي على قيمة ثم قم بإرجاع المخرجات (تحليل خطوة بخطوة)
هنا لدينا مجموعة بيانات بعلامات بعض الطلاب في الفيزياء والكيمياء ، والرياضيات في مدرسة تسمى Sunflower Kindergarten.
تعني الخلايا الفارغة أن الطالب لم يظهر ، أي أنه كان غائبًا في هذا الاختبار المحدد. الآن دعنا نحلل الموقف ، سواء كانت الخلية تحتوي على قيمة أم لا ، باستخدام مجموعة البيانات هذه.
⧪ الخطوة 1: إعلان الخلية
أولاً ، علينا أن أعلن عن الخلية التي نريد تحليل قيمتها. دعنا نحلل ما إذا كانت جينيفر مارلو ظهرت في امتحان الفيزياء أم لا.
لذلك ، نحتاج إلى التحقق مما إذا كانت الخلية C12 تحتوي على قيمة أم لا.
للقيام بذلك ، أولاً ، يجب أن نعلن عن الخلية C12 .
سيكون سطر الكود لإنجاز ذلك:
3844
الخطوة 2: التحقق مما إذا كانت الخلية تحتوي a قيمة (بما في ذلك قيمة معينة)
بعد ذلك ، علينا التحقق مما إذا كانتحتوي الخلية على قيمة أم لا. سنقوم بتنفيذ هذا باستخدام شرط إذا . سيكون سطر الكود:
3683
سيتم تنفيذ هذا الرمز إذا كانت الخلية تحتوي على أي قيمة. للتحقق من قيمة (على سبيل المثال ، سواء كانت تحتوي على 100 أم لا) ، استخدم تلك القيمة المحددة مع يساوي رمز.
3689
⧪ الخطوة 3: تخصيص المهمة
ثم يتعين عليك إعداد مهمة سيتم تنفيذها إذا كانت الخلية تحتوي على قيمة (أو قيمة محددة).
هنا ، نريد عرض الرسالة "ظهرت جينيفر مارلو في امتحان الفيزياء". . لذا فإن سطر الكود سيكون:
1456
⧪ الخطوة 4: إنهاء If Block
أخيرًا ، يجب عليك إعلان نهاية كتلة If.
4551
لذا فإن كود VBA الكامل سيكون:
⧭ كود VBA:
3280
⧭ Output:
قم بتشغيل هذا الرمز بالنقر فوق الزر Run Sub / UserForm على شريط الأدوات.
ستعرض الرسالة "ظهرت جينيفر مارلو في اختبار الفيزياء". حيث أن الخلية C12 تحتوي على قيمة ، من 50 .
أمثلة تتضمن ما إذا كانت الخلية تحتوي على قيمة ثم إخراج محدد باستخدام Excel VBA
لقد تعلمنا تحليل ما إذا كانت الخلية تحتوي على قيمة أم ليس في فبا . الآن ، دعنا نستكشف بعض الأمثلة لتوضيح الفهم.
1. تطوير ماكرو لتصفية قيمة إذا كانت الخلية المقابلة تحتوي على أي قيمة ثم في Excel VBA
دعونا نطور ماكرو لتصفية الطلاب الذين ظهروا في كل اختبار.
أي ، علينا التحقق من الخلايا التي تحتوي على علامات كل موضوع ومعرفة ما إذا كانت تحتوي على قيمة ام لا>
⧭ كود VBA:
9241
⧭ الإخراج:
حدد مجموعة البيانات ( بما في ذلك الرؤوس ) وتشغيل هذا الماكرو .
أولاً ، سيُطلب منك إدخال المرجع الأول الخلية حيث تريد البيانات التي تمت تصفيتها. لقد أدخلت G3 .
ثم انقر فوق موافق . ستحصل على أسماء الطلاب الذين ظهروا في كل اختبار (بما في ذلك الرؤوس ) في مجموعة بيانات جديدة تبدأ من الخلية G3 .
2. إنشاء وظيفة معرّفة من قبل المستخدم لفرز قيمة إذا كانت الخلية المقابلة تحتوي على قيمة محددة ، ثم في Excel VBA
الآن سننشئ وظيفة معرّفة من قبل المستخدم والتي ستعيد أسماء الطلاب الذين حصلوا على علامة محددة في كل موضوع.
الإجراء هو نفسه تقريبًا كما هو مذكور أعلاه. يجب أن نتحقق من الخلايا التي تحتوي على علامات كل موضوع ونرى ما إذا كانت تساوي قيمة معينة أم لا.
إذا كانت كذلك ، فسنقوم بإرجاع اسم الطالب المقابل.
كود VBA سيكون:
⧭ VBAالكود:
9479
الإخراج:
ينشئ الرمز وظيفة تسمى Cells_with_Values ذلك يأخذ وسيطتين ، النطاق النطاق والقيمة .
لنكتشف الطلاب الذين حصلوا على 100 في كل مادة باستخدام هذه الوظيفة.
حدد نطاقًا من الخلايا في ورقة العمل وأدخل هذه الوظيفة في الخلية الأولى من النطاق:
=Cells_with_Values(B3:E13,100)
[هنا B3: E3 هي مجموعة البيانات الخاصة بي (بما في ذلك الرؤوس ) و 100 هي قيمة المطابقة الخاصة بي. أنت تستخدم واحدة.]
ثم اضغط على CTRL + SHIFT + ENTER ( Array Formula ). ستعيد مصفوفة تتكون من أسماء الطلاب الذين حصلوا على 100 في كل موضوع ، بما في ذلك العناوين .
3. تطوير نموذج مستخدم لاستخراج قيمة إذا كانت الخلية المقابلة تحتوي على أي قيمة (أو قيمة محددة) في Excel VBA
أخيرًا ، سنقوم بتطوير UserForm لاستخراج أسماء الطلاب الذين ظهروا (أو حصلوا على علامات محددة) في بعض الاختبارات المحددة.
⧪ الخطوة 1: فتح UserForm
انتقل إلى Insert & gt؛ خيار UserForm في محرر VBA لفتح نموذج مستخدم جديد . سيتم فتح نموذج مستخدم جديد يسمى UserForm1 .
⧪ الخطوة 2: سحب الأدوات إلى UserForm
بجانب UserForm ، ستحصل على Toolbox . حرك المؤشر فوق Toolbox واسحب 4 ملصقات (Label1 ، Label2 ،Label3، Label4) و 3 ListBoxes (ListBox1 و ListBox2 و ListBox3) و TextBox (TextBox1) في شكل مستطيل فوق UserForm .
ثم اسحب آخر Label (Label5) و TextBox (TextBox2) إلى الركن الأيسر السفلي من UserForm .
أخيرًا ، اسحب CommandButton (CommandButton1) إلى الزاوية اليمنى السفلية.
قم بتغيير شاشات عرض التسميات إلى عمود البحث ، إرجاع العمود ، أي قيمة أو قيمة محددة ، قيمة ، و خلية البداية.
أيضًا ، قم بتغيير عرض CommandButton1 إلى موافق .
⧪ الخطوة 3: كتابة التعليمات البرمجية لـ ListBox3
انقر نقرًا مزدوجًا فوق ListBox3 . سيتم فتح إجراء إجراء فرعي خاص يسمى ListBox3_Click . أدخل الرمز التالي هناك.
4257
⧪ الخطوة 4: كتابة كود CommandButton1
ثم انقر نقرًا مزدوجًا فوق CommandButton1 . سيتم فتح إجراء آخر إجراء فرعي خاص يسمى CommandButton1_Click . أدخل الرمز التالي هناك.
7125
⧪ الخطوة 5: كتابة رمز لتشغيل UserForm
أخيرًا ، أدخل وحدة جديدة من شريط أدوات VBA وأدخل الكود التالي هناك.
5809
⧪ الخطوة 6: تشغيل UserForm (الإخراج النهائي)
نموذج المستخدم جاهز الآن للاستخدام. حدد مجموعة البيانات من ورقة العمل ( B3: E13 هنا) (بما في ذلك الرؤوس ) وقم بتشغيل ماكرو المسمى Run_UserForm .
سيتم تحميل UserForm في ورقة العمل. من جدول عمود البحث ، اخترت الفيزياء و الرياضيات ، لأنني أريد الحصول على أسماء الطلاب الذين ظهروا في الفيزياء و الرياضيات .
من جدول عودة العمود ، اخترت اسم الطالب ، لأنني أريد الحصول على أسماء الطلاب.
ومن الجدول أي قيمة أو قيمة محددة ، قمت بتحديد أي قيمة .
أخيرًا ، في خلية البداية مربع ، لقد وضعت G3 .
ثم انقر فوق موافق . ستحصل على أسماء الطلاب الذين ظهروا في اختبارات الفيزياء و الرياضيات بدءًا من الخلية G3 .
إذا حددت قيمة محددة من جدول أي قيمة أو قيمة محددة ، فستحصل على مربع نص آخر لإدخال القيمة المحددة.
لقد أدخلت هنا 100 .
انقر فوق موافق . وستحصل على الطلاب الذين حصلوا على 100 في الفيزياء و الكيمياء .
أشياء يجب تذكرها
استخدمنا مصفوفة ثنائية الأبعاد لإرجاع أسماء الطلاب في الوظيفة المعرفة بواسطة المستخدم الموضحة في المثال 2 .