مباراة VBA | كيفية استخدام وظيفة المطابقة في VBA Excel؟ (أمثلة)

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

وظيفة مطابقة VBA

تبحث وظيفة VBA Match عن الموضع أو رقم الصف لقيمة البحث في صفيف الجدول ، أي في جدول Excel الرئيسي.

في ورقة العمل ، تعد وظائف البحث جزءًا لا يتجزأ من برنامج Excel. بعض وظائف البحث الهامة هي VLOOKUP و HLOOKUP و INDEX و MATCH. لسوء الحظ ، ليس لدينا هذه الوظائف كوظائف VBA. ومع ذلك ، يمكننا استخدامها كوظائف ورقة عمل في VBA.

في هذه المقالة ، سأوضح لك كيفية استخدام إحدى وظائف البحث في ورقة العمل MATCH في VBA كدالة في ورقة العمل.

كيفية استخدام وظيفة المطابقة في VBA Excel؟

سنعرض لك مثالاً بسيطًا لاستخدام وظيفة Excel MATCH في VBA.

يمكنك تنزيل قالب VBA Match Excel من هنا - قالب VBA Match Excel

مثال 1

في VBA ، يمكننا استخدام صيغة المطابقة هذه في Excel كوظيفة في ورقة العمل. اتبع الخطوات أدناه لاستخدام وظيفة MATCH في VBA.

الخطوة 1: قم بإنشاء إجراء فرعي عن طريق إعطاء اسم ماكرو.

رمز:

 تطابق فرعي_ مثال 1 ()

الخطوة 2: في الخلية E2 نحتاج إلى النتيجة ، لذا ابدأ الكود كـ Range ("E2") القيمة =

رمز:

 Sub Match_Example1 () Range ("E2"). القيمة = End Sub 

الخطوة 3: في الخلية E2 يجب أن تكون نتيجة صيغة المطابقة. لذا من أجل الوصول إلى وظيفة VBA MATCH ، نحتاج إلى استخدام الخاصية "WorksheetFunction" أولاً. في هذه الخاصية ، سوف نحصل على قائمة وظائف ورقة العمل المتاحة.

الخطوة 4: حدد وظيفة MATCH هنا.

رمز:

 Sub Match_Example1 () Range ("E2"). القيمة = WorksheetFunction.Match (End Sub 

الخطوة 5: تبدأ المشكلة الآن لأننا لا نحصل على اسم بناء جملة دقيق بل نحصل على النحو مثل "Arg1، Arg2، Arg3" مثل هذا. لذلك عليك أن تكون متأكدًا تمامًا من التركيب اللغوي هنا.

الوسيطة الأولى لدينا هي LOOKUP VALUE ، لدينا LOOKUP VALUE في الخلية D2 ، لذلك حدد الخلية على أنها Range (“D2”). القيمة .

رمز:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value، End Sub 

الخطوة 6: الوسيطة الثانية هي Table Array ، يتراوح نطاق صفيف الجدول لدينا من A2 إلى A10. لذا حدد النطاق باسم "النطاق (" A2: A10 ")"

رمز:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value، Range ("A2: A10")، End Sub 

الخطوة 7: الآن الوسيطة النهائية هي MATCH TYPE. نحتاج إلى تطابق تام ، لذا أدخل قيمة الوسيطة على أنها صفر.

رمز:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value، Range ("A2: A10")، 0) End Sub 

قم بتشغيل الماكرو ، وسوف نحصل على موضع أي اسم عام موجود في الخلية D2.

مثال # 2 - مباراة VBA من ورقة أخرى

افترض أن نفس مجموعة البيانات الواردة أعلاه موجودة في ورقتين مختلفتين. على سبيل المثال ، يوجد مصفوفة الجدول في اسم الورقة المسمى "ورقة البيانات" وقيمة البحث موجودة في اسم الورقة المسمى "ورقة النتائج".

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

رمز:

 Sub Match_Example2 () Sheets ("Result Sheet") .Range ("E2"). Value = WorksheetFunction.Match (Sheets ("Result Sheet") .Range ("D2"). Value، Sheets ("Data Sheet"). النطاق ("A2: A10") ، 0) End Sub 

مثال # 3 - وظيفة مطابقة VBA مع الحلقات

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

افترض أن لديك مثل هذه البيانات.

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

رمز:

 Sub Match_Example3 () Dim k As Integer For k = 2 To 10 Cells (k، 5) .Value = WorksheetFunction.Match (Cells (k، 4) .Value، Range ("A2: A10")، 0) Next k End الفرعية 

ستحصل هذه المجموعة من الرموز على النتيجة في لمح البصر.


$config[zx-auto] not found$config[zx-overlay] not found