كيفية استخدام أحرف البدل في vba (مع أمثلة)
يمكنك استخدام عامل التشغيل Like في VBA مع أحرف البدل المضمنة التالية للبحث عن أنماط محددة في السلاسل:
- * : يطابق أي عدد من الأحرف
- ؟ : يطابق حرفًا واحدًا
- # : يتوافق مع رقم واحد
- [] : يطابق أي حرف ضمن النطاق
توضح الأمثلة التالية كيفية استخدام أحرف البدل هذه عمليًا.
مثال 1: استخدم *Wildcard للبحث عن سلسلة فرعية
لنفترض أن لدينا قائمة الأطعمة التالية في العمود أ:
يمكننا إنشاء الماكرو التالي للبحث عن السلسلة الفرعية “الساخنة” في كل سلسلة في العمود A وعرض النتائج في العمود B:
Sub FindString()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *hot* " Then
Range(" B " & i) = " Contains hot "
Else
Range(" B " & i) = " Does Not Contain hot "
End If
Next i
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
مثال 2: استخدم حرف البدل * للبحث عن سلاسل تنتهي بنمط
لنفترض أن لدينا القائمة التالية لأسماء فرق كرة السلة في العمود A:
يمكننا إنشاء الماكرو التالي للبحث عن سلاسل في العمود A تنتهي بـ “ets” وعرض النتائج في العمود B:
Sub FindEndingString()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *ets " Then
Range(" B " & i) = " Ends in ets "
Else
Range(" B " & i) = " Does Not End in ets "
End If
Next i
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
مثال 3: استخدم حرف البدل # للبحث عن الأرقام
لنفترض أن لدينا قائمة السلاسل التالية في العمود A:
يمكننا إنشاء الماكرو التالي للبحث عن سلاسل في العمود A تحتوي على أرقام وعرض النتائج في العمود B:
SubFindNumbers ()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *#* " Then
Range(" B " & i) = " Contains Numbers "
Else
Range(" B " & i) = " Does Not Contain Numbers "
End If
Next i
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
مثال 4: استخدم حرف البدل [] للبحث عن أحرف متعددة
لنفترض أن لدينا القائمة التالية لأسماء فرق كرة السلة في العمود A:
يمكننا إنشاء الماكرو التالي للبحث في العمود A عن السلاسل التي تحتوي على r أو s أو t في مكان ما في اسم الفريق وعرض النتائج في العمود B:
Sub FindSpecificLetters()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *[rt]* " Then
Range(" B " & i) = " Contains r, s, or t "
Else
Range(" B " & i) = " Does Not Contain r, s or t "
End If
Next i
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
ملاحظة : يمكنك العثور على وثائق البدل VBA الكاملة هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى باستخدام VBA:
فبا: كيفية حساب تكرارات الأحرف في سلسلة
VBA: كيفية التحقق مما إذا كانت السلسلة تحتوي على سلسلة أخرى
VBA: كيفية حساب الخلايا التي تحتوي على نص معين