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