فبا: كيفية استخدام مطابقة الفهرس


يمكنك استخدام بناء الجملة الأساسي التالي لإجراء مطابقة INDEX في VBA:

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 5).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

يبحث هذا المثال تحديدًا عن القيم في الخلايا من 2 إلى 11 في العمود الرابع من ورقة العمل في النطاق B2:B11 ، ثم يقوم بإرجاع القيم المقابلة في النطاق A2:A11 في العمود الخامس من ورقة العمل.

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: إجراء مطابقة INDEX باستخدام VBA

لنفترض أن لدينا مجموعة البيانات التالية في Excel تحتوي على معلومات حول لاعبي كرة السلة:

لكل لاعب في العمود D، لنفترض أننا نريد العثور على اسم فريقه في العمود A، ثم اكتب اسم الفريق في العمود E.

يمكننا إنشاء الماكرو التالي للقيام بذلك:

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 5).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:

لاحظ أن هذا الماكرو كان قادرًا على البحث عن اسم كل لاعب ثم إرجاع اسم الفريق المقابل له في العمود E.

لاحظ أنه ضمن حلقة For، يحدد بناء جملة Cells(i,5).value أننا نريد إرجاع أسماء الفرق في العمود الخامس من جدول البيانات، أي العمود E.

إذا قمنا بتغيير بناء الجملة هذا إلى Cells(i,6).value فسيتم إرجاع أسماء الفريق في العمود السادس من جدول البيانات:

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 6).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:

لاحظ أنه يتم الآن إرجاع أسماء الفرق في العمود السادس من جدول البيانات (العمود F).

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:

VBA: كيفية التحقق مما إذا كانت السلسلة تحتوي على سلسلة أخرى
فبا: كيفية حساب عدد الصفوف في النطاق
VBA: كيفية كتابة وظائف COUNTIF وCOUNTIFS

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *