كيفية استخدام أحرف البدل في 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: كيفية حساب الخلايا التي تحتوي على نص معين

Add a Comment

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