التفوق - كيفية محاذاة جميع القائمة المشتركة؟

القضية

لدي 4 أعمدة. أول عمودين (أ و ب) هما قائمة الشيكات التي أصدرتها. ثم العمودين الآخرين (C & D) هما قائمة بالشيكات المغطاة من البنك. يشبه هذا:

 A ---------- B ---------- C ---------- D ISSUED ---- ---- ---- ---- en-cashed --- -المبلغ 001 ------ 112.00 ------ 001 ------ 112.00 002 ------ 200.25 ------ 003 ------ 350.00 003 --- --- 350.00 ------ 004 ------ 512.00 004 ------ 512.05 ------ 005 ------ 200.10 005 ------ 200.05 - ---- 007 ------ 821.30 006 ------ 300.25 ------ 009 ------ 100.10 007 ------ 821.30 ------ 010 - ----- 500.00 008 ------ 254.23 009 ------ 100.00 010 ------ 500.00 

الآن ، ما أريد القيام به هو محاذاة جميع أرقام التحقق الشائعة في العمود "أ" و "ج" وإخبارنا في العمود "هـ" إذا كان المبلغ له نفس القيمة. والتي سوف تبدو مثل هذا:

 A ---------- B ---------- C ---------- D ---------- E ISESUED ---- المبلغ ---- المبلغ النقدي ----- ----- القيمة 001 ------ 112.00 ------ 001 ------ 112.00 ----- TRUE 002 - ---- 200.25 003 ------ 350.00 ------ 003 ------ 350.00 ----- TRUE 004 ------ 512.05 ------ 004 - ---- 512.00 ----- FALSE 005 ------ 200.05 ------ 005 ------ 200.10 ----- FALSE 006 ------ 300.25 007 - ---- 821.30 ------ 007 ------ 821.30 ----- TRUE 008 ------ 254.23 009 ------ 100.00 ------ 009 - ---- 100.80 ----- FALSE 010 ------ 500.00 ------ 010 ------ 500.00 ----- TRUE 

حل

الافتراضات

  • 1. تم العثور على صفوف البيانات القصوى في العمود أ
  • 2. في وقت تنفيذ الماكرو ، الورقة النشطة هي الورقة مع البيانات

 Sub AlignAndAccount () Dim lMaxRows As Long Dim lRowBeanCounter As Long Columns ("A: B"). حدد Selection.Sort _ Key1: = Range ("A2")، Order1: = xlAscending، _ Header: = xlYes، OrderCustom: = 1 ، _ MatchCase: = خطأ ، اتجاه: = xlTopToBottom ، _ DataOption1: = xlSortNormal Columns ("C: D"). حدد Selection.Sort _ Key1: = Range ("C2") ، Order1: = xlAscending ، _ Header: = xlYes ، OrderCustom: = 1 ، _ MatchCase: = False ، Orientation: = xlTopToBottom ، _ DataOption1: = xlSortNormal lMaxRows = خلايا (Rows.Count ، "A"). End (xlUp) .Row Cells (1، "E" ) = "القيمة" لـ lRowBeanCounter = 2 إلى lMaxRows حدد خلايا الحالة (lRowBeanCounter ، "A") الحالة هي = خلايا (lRowBeanCounter ، "C") إذا (خلايا (lRowBeanCounter ، "B") = خلايا (lRowBeanCounter ، "B") )) ثم الخلايا (lRowBeanCounter، "E") = "TRUE" Else Cells (lRowBeanCounter، "E") = "FALSE" End إذا كانت الحالة <Cells (lRowBeanCounter، "C") النطاق ("C" & lRowBeanCounter & " : D "& lRowBeanCounter). حدد التحديد. أدخل الإزاحة: = xlDown 'Cells (lRowBeanCounter،" E ") =" FALSE "نطاق حالة آخر (" A "& lRowBeanCounter &": B "& lRowBeanCounter). حدد الاختيار. أدخل الإزاحة: = xlDown lMaxRows = lMaxRows + 1 End حدد التالي lRowBeanCounter End Sub 

ملحوظة

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

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

نصائح الأعلى