فبا: كيفية حساب تكرارات الأحرف في سلسلة


يمكنك استخدام بناء الجملة الأساسي التالي لحساب عدد تكرارات الحرف في سلسلة باستخدام VBA:

 Sub CountOccurrences()
    Dim i As Integer
    
    'Specify character to look for
    my_char = "/"
    
    'Count occurrences in each string in B2:B12 and display results in C2:C12
    For i = 2 To 12
        Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
        Range(" C " & i) = Count
    Next i
End Sub

يحسب هذا المثال تحديدًا عدد مرات ظهور الشرطة المائلة للأمام ( / ) في كل خلية في النطاق B2:B12 ويعرض النتائج في النطاق C2:C12 .

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: حساب عدد مرات ظهور الأحرف في سلسلة باستخدام VBA

لنفترض أن لدينا مجموعة البيانات التالية في Excel والتي تعرض أسماء لاعبي كرة السلة المختلفين والمناصب التي يمكنهم لعبها في اللعبة:

لنفترض أننا نريد حساب عدد الخطوط المائلة للأمام ( / ) في كل سلسلة في عمود الموضع.

يمكننا إنشاء الماكرو التالي للقيام بذلك:

 Sub CountOccurrences()
    Dim i As Integer
    
    'Specify character to look for
    my_char = "/"
    
    'Count occurrences in each string in B2:B12 and display results in C2:C12
    For i = 2 To 12
        Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
        Range(" C " & i) = Count
    Next i
End Sub

عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:

تعرض القيم الموجودة في العمود C عدد مرات ظهور الشرطة المائلة في السلاسل المطابقة في العمود B.

على سبيل المثال:

  • تحتوي سلسلة Guard /Forward على شرطة مائلة واحدة .
  • تحتوي سلسلة Guard على 0 شرطة مائلة.
  • تحتوي سلسلة Guard على 0 شرطة مائلة.
  • تحتوي السلسلة الأمامية/الوسطية على شرطة مائلة واحدة .

وما إلى ذلك وهلم جرا.

لحساب تكرارات حرف مختلف، ما عليك سوى تغيير حرف المتغير my_char في الماكرو.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:

VBA: كيفية التحقق مما إذا كانت السلسلة تحتوي على سلسلة أخرى
فبا: كيفية حساب عدد الصفوف في النطاق
VBA: كيفية كتابة وظائف COUNTIF وCOUNTIFS

Add a Comment

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