Vba: صيغة بسيطة لـ "إذا كانت الخلية تحتوي على"
يمكنك استخدام بناء الجملة الأساسي التالي لاستخدام صيغة “إذا كانت الخلية تحتوي على” في VBA:
Sub IfContains()
Dim i As Integer
For i = 2 To 8
If InStr(1, LCase(Range(" A " & i)), " turtle ") <> 0 Then
Result = " Contains Turtle "
Else
Result = “ Does Not Contain Turtle ”
End If
Range(" B " & i) = Result
Next i
End Sub
يتحقق هذا المثال تحديدًا مما إذا كانت كل خلية في النطاق A2:A8 تحتوي على “سلحفاة”، ثم يقوم بتعيين “يحتوي على سلحفاة” أو “لا يحتوي على سلحفاة” لكل خلية مطابقة في النطاق B2:B8 .
ملاحظة : تتحقق طريقة Instr مما إذا كانت السلسلة تحتوي على سلسلة أخرى وتقوم طريقة LCase بتحويل النص إلى أحرف صغيرة لإجراء بحث غير حساس لحالة الأحرف.
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: كيفية استخدام “إذا كانت الخلية تحتوي على” في VBA
لنفترض أن لدينا قائمة الخلايا التالية في Excel تحتوي كل منها على نص مختلف:
لنفترض أننا نريد التحقق مما إذا كانت كل خلية في النطاق A2:A8 تحتوي على النص “سلحفاة” ونعرض النتائج في الخلايا المقابلة في النطاق B2:B8 .
يمكننا إنشاء الماكرو التالي للقيام بذلك:
Sub IfContains()
Dim i As Integer
For i = 2 To 8
If InStr(1, LCase(Range(" A " & i)), " turtle ") <> 0 Then
Result = " Contains Turtle "
Else
Result = “ Does Not Contain Turtle ”
End If
Range(" B " & i) = Result
Next i
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
يخبرنا العمود B ما إذا كانت الخلايا المقابلة في العمود A تحتوي على كلمة “سلحفاة” في مكان ما في النص أم لا.
ملاحظة : يمكنك العثور على الوثائق الكاملة لأسلوب VBA Instr هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
فبا: كيفية حساب تكرارات الأحرف في سلسلة
VBA: كيفية التحقق مما إذا كانت السلسلة تحتوي على سلسلة أخرى