كيفية استخدام INDEX MATCH مع Excel VBA

  • شارك هذا
Hugh West

يمكنك استخدام وظائف ورقة عمل Excel المضمنة مثل وظيفة VLOOKUP و وظيفة الاختيار و وظيفة PMT في كود VBA والتطبيقات كذلك. في الواقع ، يمكن الوصول إلى معظم وظائف ورقة العمل Excel واستخدامها في كود VBA . مثل استخدام INDEX & amp؛ MATCH Worksheet Functions في Excel VBA code.

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

لذا ، فلنبدأ بمثال يوضح كيفية استخدام INDEX MATCH مع Excel VBA.

سنستخدم INDEX و MATCH وظائف في Excel VBA كود ، من أجل إنشاء نموذج مستخدم بسيط. باستخدام النموذج ، يختار المستخدم اسم الطالب ، ثم يتم استرداد جنس الطالب ولون العين المقابل وإعادتهما. تدرب بنفسك.

INDEX-MATCH.xlsx

9 خطوات سهلة لاستخدام INDEX و MATCH ضمن كود VBA

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

لقد تناولنا بالفعل بالتفصيل ، كيفية استخدام INDEX و MATCH لأداء متقدم عمليات البحث في مصنف Excel كصيغة ورقة عمل مباشرة ، في برنامج تعليمي سابق . سنرى الآن كيفية استخدام الدالتين INDEX و MATCH معًا في VBA code ، من أجل منح وظائف مماثلة لـ البحث عن UserForm الذي سننشئه.

الخطوة الأولى: تطبيق وظائف INDEX و MATCH في مجموعة البيانات

  • نحن نبدأ مع ورقتين في الماكرو الخاص بنا المصنف الممكّن. أحدهما عبارة عن ورقة فارغة تسمى UserForm ، والآخر عبارة عن ورقة تسمى StudentInformation ، والتي تحتوي على نطاق يعرض أسماء الطلاب والجنس المقابل ولون العين كـ الموضح أدناه.

دعونا نذكر أنفسنا بسرعة إذا أردنا استخدام INDEX و تطابق وظائف في صيغة واحدة ، في ورقة العمل الفعلية لتعطينا جنس اسم الطالب الذي نريد البحث عنه. سنستخدم الصيغة التالية:

=INDEX(B2:B31, MATCH("Diana Graham", A2:A31, 0))

  • عند الضغط على CTRL-ENTER ، نحصل على قيمة الإناث التي تم إرجاعها ، كنوع كما هو موضح أدناه.

الخطوة 2: تغيير اسم العمود B إلى StudentNames

  • سنقوم الآن بتسمية النطاق A2: A31 ، StudentNames كما هو موضح أدناه.

  • إخفاء ورقة معلومات الطالب ، بالنقر بزر الماوس الأيمن واختيار إخفاء. إخفاء أوراق العمل الخلفية التي تحتوي على المعلومات بشكل سطحي لا تريد أن يقوم المستخدم بتحريره أو رؤيته.

الخطوة 3: افتح نافذة Visual Basic

  • الآن مع تنشيط ورقة UserForm ، نذهب إلى المطور و GT. كود & GT. Visual Basic لفتح محرر Visual Basic (VBE) .
  • مرة واحدة في واجهة VBE ، نذهب إلى Insert ، UserForm كما هو موضح أدناه .

الخطوة 4: تغيير الخصائص وإضافة مربعات نص

  • استخدام الخصائص النافذة ، سنعيد تسمية النموذج إلى StudentLookup ، وتغيير التسمية التوضيحية إلى البحث عن معلومات الطالب ، وتغيير BackColor إلى اللون الأزرق الفاتح ، وضبط الارتفاع على 300 بكسل والعرض إلى 350 بكسل. إذا لم تظهر نافذة الخصائص ، فاضغط على المفتاح F4 على لوحة المفاتيح لرؤيتها.

  • نحن سيدرج الآن تسمية باستخدام Toolbox (إذا لم تتمكن من رؤية Toolbox ، فانتقل لسبب ما إلى عرض ، Toolbox ) ، قم بتغيير التسمية التوضيحية لاختيار طالب وسنقوم بتغيير BackColor إلى اللون الأبيض في هذه الحالة. سنقوم بتعيين الخط على Georgia ، ونمط الخط على bold ، وحجم الخط على 12 ، ويقوم المركز بمحاذاة النص. سيكون التأثير الخاص المستخدم هو 1– fmSpecialEffectRaised كما هو موضح أدناه.

  • الآن سنقوم بإدراج مربع تحرير وسرد أسفل ضع الكلمة المناسبة. قم بتسمية مربع التحرير والسرد هذا cmdStudentName ومن أجل مصدر الصف ، اكتب StudentNames.

  • لكي ترى تأثير تعيين مصدر الصف من مربع التحرير والسرد ، انقر فوق الزر Run Sub / UserForm .
  • الآن بسبب تعيين مصدر الصف إلى النطاق المسمى ، عندما ينقر المستخدم على سهم القائمة المنسدلة في UserForm ، يعرض مربع التحرير والسرد أسماء الطلاب من النطاق المحدد تلقائيًا كما هو موضح أدناه.

  • أغلق نموذج المستخدم بالنقر فوق زر الإغلاق. اضغط على Alt-F11 للعودة إلى VBE .
  • مرة أخرى في VBE ، أضف تسمية أخرى إلى UserForm ( أسفل مربع التحرير والسرد) وقم بتغيير التسمية التوضيحية إلى النوع وسنقوم بتغيير BackColor إلى اللون الأبيض في هذه الحالة. سنقوم بتعيين الخط على Georgia ، ونمط الخط على غامق ، وحجم الخط على 12 ، و في الوسط محاذاة النص . سيكون التأثير الخاص المستخدم هو 1– fmSpecialEffectRaised كما هو موضح أدناه.

  • إنشاء مربع نص أسفل العلامة النوع ، وقم بتسميتها txtGender .
  • أضف تسمية أخرى تسمى العين اللون ومربع نص اسمه txtEyeColour كما هو موضح أدناه. استخدم نفس الخصائص للتسمية الخاصة بالتسميتين الأخريين اللتين تمت إضافتهما مسبقًا إلى النموذج ، من أجل التأكد من أن UserForm له مظهر متناسق.

  • الآن حدد جميع عناصر التحكم ، المضافة إلى UserForm ، حتى الآن باستخدام مفتاح التحكم.

  • توسيط أفقيًا ، كما هو موضح أدناه.

اقرأ المزيد: كيفية استخدام صيغة INDEX MATCH في Excel (9 أمثلة)

قراءات مماثلة

  • Excel INDEX MATCH إذا كانت الخلية تحتوي على نص
  • كيفية استخدام صيغة INDEX-MATCH في Excel لإنشاء نتائج متعددة
  • مجموع مطابقة الفهرس لصفوف متعددة في Excel (3 طرق)
  • تعلم برمجة Excel VBA & amp؛ وحدات الماكرو (برنامج تعليمي مجاني - خطوة بخطوة)
  • 22 أمثلة ماكرو في Excel VBA

الخطوة 5: إضافة زر من Toolbox

  • التالي ، أضف زرًا إلى النموذج باستخدام Toolbox . غيّر اسم من الزر إلى cmdLookUp ، و BackColor إلى اللون البرتقالي الفاتح ، واحتفظ بخط Tahoma و غيّر النمط إلى غامق ، أخيرًا غيّر التسمية التوضيحية للزر إلى انظر لأعلى طالب التفاصيل كما هو موضح أدناه.

الخطوة 6: أدخل رمز VBA

  • انقر بزر الماوس الأيمن فوق ، الزر المضاف حديثًا ، و حدد عرض الرمز .

  • أدخل الرمز التالي للزر انقر فوق الحدث:

3632

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

لاحقًا ، يُنصح باستخدام أحد أنواع البيانات الأخرى الأكثر تحديدًا مثل سلسلة عدد صحيح أو . للحصول على رمز أطول وأكثر تقدمًا ، لا يستخدم نوع البيانات المتغير الذاكرة بكفاءة مثل أنواع البيانات الأخرى.

المتغير يرسم القيمة من الخيار الذي يحدده المستخدم في مربع التحرير والسرد المنسدل في UserForm . إذا لم يكن هناك تحديد ، فستكون جميع مربعات النص الأخرى فارغة .

إذا قمت بتحديد اسم طالب من التحرير والسرد مربع في UserForm ، ثم المتغير b يرسم القيمة باستخدام INDEX ورقة العمل الوظيفة بالاقتران مع MATCH الوظيفة في رمز VBA ، كما هو موضح

يبحث عن القيمة باستخدام نفس بناء الجملة مثل وظيفة ورقة العمل. عند استخدام وظائف ورقة العمل في VBA ، فإن VBA IntelliSense في هذه الحالة بالذات ليس بديهيًا ، وبالتالي فإن الإلمام بهمن المستحسن بناء الجملة المستقاة من المعرفة ورقة العمل. المتغير c يرسم القيمة باستخدام INDEX ورقة العمل الوظيفة بالاشتراك مع MATCH الوظيفة في كود VBA عندما يحدد المستخدم خيارًا من مربع التحرير والسرد.

المتغير b يحصل على قيمة من الجنس العمود في ورقة العمل ، بينما يحصل المتغير c على قيمة من عمود لون العين في ورقة العمل.

يتم ملء مربع نص الجنس بـ ب القيمة ومربع نص لون العين مليء بقيمة c .

قراءة المزيد: أحداث Excel VBA (دليل كامل)

الخطوة 7: أدخل زر الأمر

  • انتقل الآن إلى ورقة العمل المسماة UserForm في المصنف الخاص بك. تنسيق كما هو موضح أدناه ، و أدخل الصورة المقدمة بواسطة ExcelWIKI .

  • انتقل إلى Developer & GT. الضوابط و GT. إدراج & GT. عناصر تحكم ActiveX.

  • أدخل زرًا كما هو موضح.

  • مع تحديد الزر ، انتقل إلى Developer & gt؛ الضوابط و GT. الخصائص .

  • غيّر اسم للزر إلى cmdShowForm والعلامة التوضيحية إلى بحث معلومات الطالب .

الخطوة 8: عرض رمز البحث

  • انقر بزر الماوس الأيمن فوق الزر و حدد عرض الرمز كما هو موضحأدناه.

  • أدخل الرمز التالي:
4543

الخطوة 9: عرض النتيجة النهائية

  • العودة إلى ورقة العمل . تأكد من عدم تحديد التصميم الوضع .
  • انقر فوق الزر لإظهار النموذج.

  • حدد اسم الطالب باستخدام مربع التحرير والسرد . سيعود الرمز جنس الطالب ولون عينه تلقائيًا.

تذكر أن احفظ مصنفك كمصنف ممكن بماكرو ، إذا لم تكن قد قمت بذلك بالفعل وهناك لديك ، فنحن نستخدم INDEX & amp؛ MATCH Worksheet Functions في Excel VBA code من أجل إنشاء نموذج بحث.

اقرأ المزيد: Excel INDEX-MATCH Formula لإرجاع قيم متعددة أفقيًا

خاتمة

يحتوي Excel على العديد من وظائف ورقة العمل المفيدة ، والتي يمكن استخدامها في VBA ، مثل استخدام INDEX & amp؛ MATCH Worksheet Functions في Excel VBA code. ستسمح لك هذه الوظائف بتوسيع كود VBA . إذا كنت تعرف بالفعل كيفية عملها في معيار Excel ورقة العمل ، فإن منحنى التعلم ليس بهذه الروعة من خلال تكييف المعرفة لـ VBA . يمكن أن يكون الوصول إلى وظائف ورقة العمل ، في رمز VBA بمثابة توفير حقيقي للوقت. لأن المرء لا يضطر إلى تطوير وظائف مخصصة للوظائف الموجودة بالفعل.

لا تتردد في التعليق والإخبارإذا كنت تستخدم وظائف ورقة العمل في كود VBA والتطبيقات الخاصة بك.

قسم المراجعة: اختبر فهمك

1) قم بإعداد قائمة بسيطة في العمود A من ثلاثة عناصر هي اليوسفي والجزر والبرتقال ، ثم في الخلية المجاورة لكل عنصر في العمود B قائمة ما إذا كانت العناصر الموجودة في العمود A عبارة عن فواكه أو خضروات ، بمجرد الانتهاء من إعداد بيانات العينة ، استخدم INDEX & amp؛ وظيفة الجمع MATCH لتقديم ما إذا كان الجزر عبارة عن فواكه أو خضروات.

2) استخدم مجموعة البيانات هذه من ESPN على مدربي NFL والفريق المعني الذي يقومون بتدريبه. قم بإنشاء نموذج مستخدم يسمح للمستخدم بإدخال اسم مدرب معين في مربع نص. ثم اطلب من الفريق الذي يقوم بتدريبه تسليمه في مربع نص آخر عندما ينقر المستخدم على "إرسال". استخدم INDEX & amp؛ MATCH تركيبة دالة ورقة العمل داخل كود VBA الخاص بك.

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