VBA - ماكرو للتحقق من البيانات

أحاول إنشاء ماكرو من نوع ما للقيام ببعض عمليات التحقق للتأكد من أن كل شيء يتم ملؤه بشكل صحيح. هنا مثال على جدول البيانات ...

 ABCDE

1Kit Item Item2 النتائج 3

2AAA ABC BCD CDE

3AAA ABC BCD CDE جيد

4BBB BCD CDE DEF

5BBB ABC BCD CDE BAD

6BBB ABC BCD CDE جيد

7CCC BCD CDE DEF

8CCC ABC BCD CDE BAD

9CCC CDE CDE DEF BAD

10CCC ABC BCD CDE

أحتاج إلى كتابة ماكرو سيقوم بما يلي.

 إذا كانت الخلية A1 = A2 ، فتحقق مما إذا كانت B1 = B2 & C1 = C2 & D1 = D2.

إذا كانت جميع التطابقات ، فقم بنشر "جيد" على E1 ، وإلا قم بنشر "BAD to E1"

ولكن إذا كان A1 A2 ، فاترك E1 فارغًا ثم تنحي إلى A2 مقابل A3

في المثال أعلاه A2 = A3 و B2 = B3 & C2 = C3 & D2 = D3 ، لذلك E3 = جيد

في المثال أعلاه A4 = A5 و B4 B5 و C4 C5 و D4 D5 ، لذلك E5 = BAD

حل

هنا هو الكود:

نتائج فرعيةالنتائج ()

Dim Kit ، Item ، Item2 ، Item3 ، النتائج كنطاق

قاتمة itemCount طالما

itemCount = النطاق ("A1"). CurrentRegion.Rows.Count

Set Kit = Range ("A: A")

تعيين العنصر = النطاق ("B: B")

تعيين Item2 = النطاق ("C: C")

تعيين Item3 = النطاق ("D: D")

تعيين النتائج = النطاق ("E: E")

ل i = 3 إلى itemCount

حدد Case Kit (i، 1) = Kit (i - 1، 1)

حالة صحيح

إذا كان العنصر (i ، 1) = عنصر (i - 1 ، 1) و Item2 (i ، 1) = Item2 (i - 1 ، 1) _

و Item3 (i، 1) = Item3 (i - 1، 1) بعد ذلك

النتائج (1 ، 1) = "جيد"

إنهاء إذا

إذا كان (البند (1 ، 1) = العنصر (1 - 1 ، 1) والبند 2 (1 ، 1) = البند 2 (1 - 1 ، 1) _

و Item3 (i، 1) = Item3 (i - 1، 1)) = False Then

النتائج (1 ، 1) = "BAD"

إنهاء إذا

حالة خطأ

النتائج (1 ، 1) = ""

نهاية حدد

بعدها انا

نهاية الفرعية

شكرا لمهداد على هذه النصيحة.

المقال السابق المقالة القادمة

نصائح الأعلى