VBA COUNTIF (أمثلة) | كيفية استخدام وظيفة COUNTIF في Excel VBA؟

VBA COUNTIF

الوظائف المبنية على المعايير هي حكام التفوق في الحسابات. في بداية تعلم برنامج Excel ، يجب أن نكون قد تعلمنا وظيفة COUTNIF في التفوق. في مقالاتنا السابقة ، أوضحنا لك كيفية العمل مع وظيفة COUNTIF في Excel VBA.

ارجع إلى مقالتنا حول صيغة COUNTIF في Excel لمعرفة أساسيات وظيفة COUNTIF في Excel VBA. في هذه المقالة ، سنوضح لك كيفية استخدام نفس الوظيفة في ترميز VBA. الآن سنرى نفس الصيغة في VBA. أول شيء أولًا أن COUNTIF ليست دالة VBA بل هي وظيفة ورقة عمل يمكن الوصول إليها ضمن فئة دالة ورقة العمل.

مثال على وظيفة Excel VBA Countif

حسنًا ، دعنا نرى المثال البسيط.

يمكنك تنزيل قالب Excel الخاص بوظيفة VBA Countif من هنا - قالب Excel الخاص بوظيفة VBA Countif

انظر أدناه إلى نفس مثال حساب القيم من اللوت.

في الصورة أعلاه ، لدينا أسماء مدن من الخلية A1 إلى A10. في الخلية C3 ، نحتاج إلى حساب عدد المرات التي يظهر فيها اسم المدينة "بنغالور" في النطاق من A1 إلى A10.

حسنًا ، اتبع الخطوات أدناه لكتابة الكود لتطبيق وظيفة COUNTIF.

الخطوة 1: ابدأ الإجراء الفرعي.

رمز:

 خيار صريح Sub Countif_Example1 () End Sub 

الخطوة 2: نظرًا لأننا نحتاج إلى تخزين النتيجة في الخلية C3 ، ابدأ الكود كـ Range ("C3"). القيمة.

رمز:

 النطاق الفرعي Countif_Example1 () ("C3"). القيمة = End Sub 

الخطوة 3: في الخلية C3 من خلال تطبيق وظيفة Excel VBA COUNTIF ، نحاول الوصول إلى النتيجة. لذلك للوصول إلى الوظيفة ، نحتاج أولاً إلى استخدام فئة دالة ورقة العمل.

رمز:

النطاق الفرعي Countif_Example1 () ("C3"). القيمة = دالة ورقة العمل. End Sub

الخطوة 4: من الوظيفة المفقودة ، حدد وظيفة Excel VBA COUNTIF.

رمز:

 النطاق الفرعي Countif_Example1 () ("C3"). القيمة = WorksheetFunction.CountIf (End Sub 

الخطوة 5: إذا نظرت إلى معلمات وظيفة VBA COUNTIF ، فلن نرى المعلمة كما نرى في ورقة العمل.

كما نرى في الصورة أعلاه في ورقة العمل ، لدينا بناء جملة واضح ولكن في VBA يمكننا رؤية Arg 1 و Arg 2 فقط.

Arg 1 هو النطاق ، لذا حدد النطاق من A1 إلى A10.

رمز:

 Sub Countif_Example1 () Range ("C3"). القيمة = WorksheetFunction.CountIf (Range ("A1: A10") ، End Sub 

الخطوة 6: Arg 2 هي القيمة التي نحتاجها لحساب النطاق من A1 إلى A10. في هذا المثال ، نحتاج إلى عد "بنغالور".

رمز:

 Sub Countif_Example1 () Range ("C3"). القيمة = WorksheetFunction.CountIf (Range ("A1: A10")، "Bangalore") End Sub 

حسنًا ، انتهينا.

قم بتشغيل التعليمات البرمجية لرؤية النتيجة في الخلية C3.

حصلنا على النتيجة كـ 4. نظرًا لأن اسم المدينة "Bangalore" الذي يظهر في الخلية A1 ، فإن وظيفة A4 و A7 و A10 VBA COUNTIF أعادت النتيجة على أنها 4.

إذا كان بإمكانك رؤية أن التعليمات البرمجية لـ VBA قد أعادت نتيجة الصيغة فقط ، فلن نتمكن من رؤية الصيغة في شريط الصيغة.

للوصول إلى الصيغة ، نحتاج إلى كتابة الكود بشكل مختلف قليلاً. يوجد أدناه رمز لتطبيق الصيغة نفسها على الخلية.

رمز:

 نطاق Countif_Example1 () فرعي ("C3"). الصيغة = "= CountIf (A1: A10،" "Bangalore" ")" End Sub 

سيؤدي هذا إلى تطبيق الصيغة على الخلية C3.

الوصول إلى نتيجة مع المتغيرات

المتغيرات هي جزء لا يتجزأ من أي لغة ترميز. نحتاج إلى إعلان المتغيرات للعمل بكفاءة مع كود VBA. للحصول على مثال ، انظر إلى الكود أدناه.

رمز:

 Countif_Example2 () فرعي قيم DimRange كـ نتيجة خافت للنطاق كالنطاق كمعيار خافتالقيمة كسلسلة مجموعة ValuesRange = Range ("A1: A10") Set ResultCell = Range ("C3") CriteriaValue = "Bangalore" ResultCell = WorksheetFunction.CountIf (ValuesRange، CriteriaValue ) End Sub 

اسمحوا لي أن أفك الشفرة لكي تفهمها بشكل أفضل.

أولاً ، لقد أعلنت أن المتغيرين هما Range.

Dim ValuesRange As Range: هذا للإشارة إلى قائمة القيم.

خافت النتيجة الخلية كنطاق: هذا للإشارة إلى خلية النتيجة.

ثم قمت بتعيين نطاق المراجع لكلا المتغيرين.

Set ValuesRange = Range (“A1: A10”): هذا هو النطاق الذي توجد به جميع أسماء المدن.

تعيين ResultCell = Range ("C3"): في هذه الخلية ، سنخزن نتيجة وظيفة COUNTIF.

في غضون ذلك ، أعلنت عن متغير آخر لتخزين قيمة المعايير.

معايير قاتمة القيمة كسلسلة

CriteriaValue = "بنغالور"

لذا فإن المتغير "CriteteriaValue" يحمل القيمة "Bangalore".

في السطر التالي ، كالعادة ، قمت بتطبيق وظيفة COUTNIF.

ResultCell = WorksheetFunction.CountIf (ValuesRange ، CriteriaValue)

مثل هذا ، يمكننا تطبيق وظيفة COUNTIF في Excel VBA لتناسب احتياجاتنا.


$config[zx-auto] not found$config[zx-overlay] not found