Vba: كيفية التحقق مما إذا كانت السلسلة تحتوي على سلسلة أخرى
يمكنك استخدام الدالة Instr() في VBA للتحقق مما إذا كانت السلسلة تحتوي على سلسلة أخرى.
تستخدم هذه الوظيفة بناء الجملة الأساسي التالي:
إنستر (بداية، سلسلة 1، سلسلة 2، …)
ذهب:
- start : موضع بداية البحث
- string1 : السلسلة المراد البحث عنها
- string2 : السلسلة التي تحاول العثور عليها
يوضح المثال التالي كيفية استخدام هذه الوظيفة عمليًا.
مثال: استخدم VBA للتحقق مما إذا كانت السلسلة تحتوي على سلسلة أخرى
لنفترض أن لدينا مجموعة البيانات التالية في Excel والتي تحتوي على معلومات حول فرق كرة السلة المختلفة:
لنفترض الآن أننا نريد التحقق مما إذا كانت كل سلسلة في عمود الفريق تحتوي على “avs” في مكان ما في السلسلة.
يمكننا استخدام بناء الجملة التالي في VBA للتحقق مما إذا كانت كل سلسلة في عمود الفريق تحتوي على “avs”، وإذا كان الأمر كذلك، قم بإرجاع الصف بأكمله في العمودين D وE:
Sub StringContains() Dim i As Integer , i_num As Integer For i = 2 To 9 If InStr(1, LCase(Range(" A " & i)), " avs ") <> 0 Then i_num = i_num + 1 Range(" D " & i_num & " :E " & i_num) = Range(" A " & i & " :B " & i).Value End If Next i End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
لاحظ أن كل صف من الصفوف التي تحتوي على السلسلة “avs” في مكان ما في عمود الفريق يتم إرجاعه في العمودين D وE.
في هذا المثال، يحتوي فريقان فقط (Mavs وCavs) على كلمة “avs” في عمود الفريق.
للبحث عن سلسلة مختلفة، ما عليك سوى استبدال “avs” في الكود أعلاه بالسلسلة التي تختارها.
ملاحظة رقم 1: في الكود، استخدمنا For i = 2 إلى 9 نظرًا لأن الخلايا من A2 إلى A9 تحتوي على السلاسل التي كنا مهتمين بها. لا تتردد في تغيير هذا النطاق اعتمادًا على نطاق الخلايا الذي تبحث عنه.
ملاحظة رقم 2 : يمكنك العثور على الوثائق الكاملة لوظيفة Instr() في VBA هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى باستخدام VBA:
فبا: كيفية حساب تكرارات الأحرف في سلسلة
فبا: كيفية حساب عدد الصفوف في النطاق
فبا: كيفية حساب متوسط قيمة النطاق