Excel - تمييز ماكرو في حالة الاختلاف> أو <2

  • القضية
  • حل
  • ملحوظة

القضية

أحتاج إلى مساعدة في كتابة ماكرو excel Accounting أعمل عليه. يبدو أن كل شيء يسير على ما يرام ، باستثناء جزء واحد أحتاج إلى بعض المساعدة فيه.

لديّ 2 ورقة عمل منسقة بشكل مماثل ، ومع ذلك ، فإن بعض المعلومات تتغير من ورقة العمل 1 إلى ورقة العمل 2. أريد إعداد ماكرو لإجراء فحص على الأعمدة "J" ، "M" ، "P" ، "S" ، "V" و "Y" لكل خلية. هنا مثال على ما أحتاجه:

-إذا كان أكبر من 20 أو أقل من -20 (Worksheet1! M24-Worksheet2! M24) ، فقم بتغيير خلفية الخلية Worksheet1! M24 lavender

- أحتاج إلى الصيغة التي يجب إجراؤها كتحقق ، وليس الكتابة فوق البيانات في أي ورقة عمل

هذا يعني أنه إذا كانت M24 في ورقة العمل 1 هي 200.00 ، وكانت M24 في ورقة العمل هي 275.00 ، فسيظل M24 في ورقة العمل 1 هو 200.00 ولكن سيتم تمييزه الآن على شكل لافندر.

أي أفكار كيف يمكنني القيام بذلك؟ أقوم بإنشاء وحدات الماكرو في VBA ، والتي لدي خبرة قليلة جدًا بها.

حل

اختيارك من الأعمدة J و M و N وما إلى ذلك أن col j + 3 هي M و col M + 3 هي P إلخ ، لا بأس

تبدأ بياناتك الفعلية من الصف 2 ، الصف الأول هو عناوين الأعمدة

لا توجد فجوة في البيانات على الأقل في العمود J

لكنك كتبت أنه إذا كان الفرق بين خلايا الصفحتين eiteshr> 20 أو أقل من 20 يجب أن يكون ملونًا. هذا يعني فقط إذا كان 20 هو غير ملون. هل هذا منطق جيد يرجى التحقق مرة أخرى

على هذه الفرضية يرد الماكرو أدناه. اختباره ونشر التعليقات مرة أخرى.

إذا كان هناك خطأ أو خطأ يجب توضيح الخطأ بوضوح. إذا توقف الماكرو السطر حيث يتوقف ورسالة خطأ.

تراجع الماكرو الثاني عن إزالة التلوين ؛ لقد استخدمت اللون مخدر كما r 3 للأحمر. إذا كنت تصر على الخزامى ، فعليك معرفة عدد الألوان ، لأنني قد أسيء فهم ما تعنيه الخزامى. في خلية فارغة

تلوين الخلية في الخزامى. افترض أن الخلية هي E13 ثم انتقل إلى نافذة محرر vb الفوري واكتب:

؟ مجموعة ( "E13"). interior.colorindex

واحتفظ المؤشر في نهاية هذا الخط واضغط على مفتاح الإدخال وستحصل على رقم اللون. استخدام ذلك في الماكرو.

وحدات الماكرو هما:

 اختبار فرعي () Dim col1 As Integer ، col2 as Integer ، col as Integer ، rrow كـ Integer Dim lastrow كـ Integer col1 = Range ("J1"). Column col2 = Range ("Y1"). Last lastumn = "أوراق العمل 1" ") .Range (" J2 "). End (xlDown) .Row 'MsgBox lastrow أوراق العمل (" sheet1 "). Cells.Interior.ColorIndex = xlNone For col = col1 To col2 الخطوة 3 لـ rrow = 2 إلى lastrow' MsgBox Cells (1، col). العنوان "rsg MsgBox If أوراق العمل (" sheet1 "). الخلايا (rrow، col) - أوراق العمل (" sheet2 "). الخلايا (rrow، col)> 20 أو _ أوراق العمل (" sheet2 "). الخلايا (rrow، col) - أوراق العمل ("sheet2"). الخلايا (rrow، col) <20 ثم أوراق العمل ("sheet1"). الخلايا (rrow، col) .Interior.ColorIndex = 3 End If Next Next End Sub 

 Sub undo () أوراق العمل ("sheet1"). Cells.Interior.ColorIndex = xlNone End Sub 

ملحوظة

بفضل venkat1926 لهذه النصيحة في المنتدى.

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

نصائح الأعلى