VBA - ماكرو للتحقق من البيانات
أحاول إنشاء ماكرو من نوع ما للقيام ببعض عمليات التحقق للتأكد من أن كل شيء يتم ملؤه بشكل صحيح. هنا مثال على جدول البيانات ...
ABCDE1Kit 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) = ""
نهاية حدد
بعدها انا
نهاية الفرعية
شكرا لمهداد على هذه النصيحة.