نطاق فرز VBA | كيفية فرز النطاق في Excel VBA؟

نطاق فرز Excel VBA

يتم فرز النطاق في VBA حسب طريقة range.sort ، وهي خاصية لطريقة النطاق التي يمكن للمستخدم من خلالها فرز نطاق بالترتيب ، وسيطات هذه الوظيفة هي Key1 و Order1 و Key2 و Type و Order2 و Key3 Order3 ، رأس ، OrderCustom ، MatchCase ، التوجه ، SortMethod ، DataOption1 ، DataOption2 ، DataOption3 ، جميع الحجج لهذه الوظيفة اختيارية.

كجزء من تنظيم البيانات أو هيكلة البيانات ، من المهم فرز البيانات وتنظيمها. يتوفر شيء مشابه مع VBA أيضًا ، لذا فإن السؤال الشائع حول المتعلمين الجدد لـ VBA هو كيف يمكننا الاستفادة من خيار الفرز هذا كجزء من أتمتة VBA وترشدك هذه المقالة عبر نطاق VBA Sort بالتفصيل.

مع برنامج Excel ، نحن جميعًا على دراية بخيار النوع المتاح ضمن علامة التبويب DATA.

فرز الخيار في VBA

لاستخدام خيار الفرز ، نحتاج أولاً إلى تحديد نطاق البيانات الخاص بنا ونذكر نفس نطاق البيانات باستخدام كائن RANGE في VBA ، ثم يمكننا فقط الوصول إلى خيار "الفرز" في VBA. على سبيل المثال ، افترض أن نطاق بياناتي من A1 إلى D10 ، ثم يمكننا توفير نطاق البيانات على النحو التالي.

رمز:

 Sub Sort_Range_Example () Range ("A1: D10") End Sub 

الآن ضع نقطة وحدد طريقة "الترتيب".

رمز:

 نطاق Sort_Range_Example () فرعي ("A1: D10"). فرز End Sub 

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

[Key1]: في نطاق البيانات الذي نقوم بفرزه ، نحتاج إلى تحديد العمود الذي نحتاج إلى الفرز. على سبيل المثال في نطاق البيانات من A1: D10 إذا كنا نريد لفرز البيانات استنادا العمود B ثم [Key1] ستكون المدى ( "B1") .

[Order1]: يجب فرز العمود المذكور في الوسيطة [Key1] بأي ترتيب. يمكننا اختيار خيارين هنا "xlAscending" أو "xlDescending".

العنوان: نطاق البيانات المذكور يحتوي على رؤوس أم لا ، إذا كانت الإجابة بنعم يمكننا توفير "xlYes" وإلا يمكننا توفير "xlNo".

مثال على نطاق الفرز في VBA

لنأخذ مثال نطاق فرز Excel VBA لفهم هذا بطريقة أفضل.

يمكنك تنزيل قالب Excel لنطاق الفرز VBA من هنا - قالب Excel لنطاق الفرز VBA

على سبيل المثال ، انظر إلى هيكل البيانات أدناه.

لدينا بيانات من A1 إلى E17 ، لذلك سنقوم أولاً بفرز البيانات بناءً على "البلد". اتبع الخطوات أدناه لكتابة الكود لفرز البيانات.

الخطوة 1: ابدأ إجراء ماكرو excel.

رمز:

 الترتيب الفرعي Sort_Range_Example () End Sub 

الخطوة 2: اذكر أولاً نطاق البيانات باستخدام كائن RANGE .

رمز:

 Sub Sort_Range_Example () Range ("A1: E17") End Sub 

الخطوة 3: اختر الآن طريقة " Sort " لكائن Range.

رمز:

 نطاق Sort_Range_Example () فرعي ("A1: E17"). فرز End Sub 

الخطوة 4: نظرًا لأننا نقوم بفرز البيانات استنادًا إلى "Country-wise" ، فسيكون عمود الوسيطة Key 1 الخاص بنا هو Range ("B1").

رمز:

 نطاق Sort_Range_Example () فرعي ("A1: E17"). مفتاح الفرز 1: = Range ("B1") ، End Sub 

الخطوة 5: بمجرد ذكر العمود المطلوب ، نحتاج إلى ذكر الترتيب الذي نحتاجه لفرز البيانات و "Order1" سيكون ترتيب "xlAscending" .

رمز:

 نطاق Sort_Range_Example () فرعي ("A1: E17"). مفتاح الفرز 1: = النطاق ("B1") ، Order1: = xlAscending ، End Sub 

الخطوة 6: تحتوي بياناتنا على رؤوس لذلك سيكون العنوان "xlYes".

رمز:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1")، Order1: = xlAscending، Header: = xlYes End Sub 

لقد ذكرنا جميع العناصر المطلوبة لفرز البيانات. قم بتنفيذ الكود بالضغط على الوظيفة والمفتاح F5 وشاهد النتيجة.

انتاج:

تم فرز البيانات بناءً على أسماء البلدان بالترتيب من الألف إلى الياء.

افترض الآن أننا بحاجة إلى فرز البيانات بناءً على البلد ، كما نحتاج إلى فرز " إجمالي المبيعات " من الأعلى إلى الأدنى. في مثل هذه الحالات ، نحتاج إلى استخدام وسيطتي Key2 و Order2 أيضًا.

بعد ذكر Key1 & Order1 ، دعنا نختار Key2.

رمز:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1")، Order1: = xlAscending، Key2: = End Sub 

نظرًا لأننا نقوم بفرز البيانات استنادًا إلى عمود " إجمالي المبيعات " ، فسيكون اسم عمود Key2 الخاص بنا هو النطاق ("D1").

رمز:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1")، Order1: = xlAscending، Key2: = Range ("D1")، End Sub 

بمجرد تحديد Key2 ، نحتاج إلى تحديد نوع الفرز سواء كان ترتيبًا تصاعديًا أو ترتيبًا تنازليًا في وسيطة Order2 نظرًا لأننا نقوم بفرز قيمة المبيعات من الأكبر إلى الأصغر يمكننا اختيار ترتيب "xlDescending".

رمز:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1")، Order1: = xlAscending، Key2: = Range ("D1")، Order2: = xlDescending، Header: = xlYes End Sub 

بعد ذلك اذكر وسيطة الرأس كـ "xlYes". الآن قم بتشغيل الكود وشاهد ما سيحدث.

انتاج:

في السابق كان يتم فرزها فقط على أساس "الدولة" ولكن هذه المرة تم تصنيفها على أساس "الدولة" أولاً ثم أيضًا على "إجمالي المبيعات" من الأعلى إلى الأدنى.

مثل هذا ، يمكننا استخدام طريقة " الفرز " في VBA لتنظيم البيانات.

أشياء يجب تذكرها حول نطاق فرز Excel VBA

  • الفرز هو طريقة متاحة في VBA وللوصول إلى هذه الطريقة نحتاج إلى تحديد نطاق الخلايا التي سنفرزها.
  • إذا كان نطاق البيانات يتضمن رؤوسًا ، فسنحتاج إلى اختيار خيار الرأس كـ "xlYes" ، وإذا لم يكن الأمر كذلك ، فيمكننا اختيار "xlNo".

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