كيفية فرز النطاق في vba؟
لفرز نطاق من الخلايا باستخدام VBA، تحتاج إلى استخدام طريقة “SORT” التي تسمح لك بتعيين مفتاح واحد (عمود) أو مفاتيح متعددة (لأعمدة متعددة) للفرز. يمكنك أيضًا تعيين الترتيب (تصاعديًا أو تنازليًا) الذي تريد الفرز به، ويمكنك تحديد ما إذا كان لديك رأس أم لا.
فرز نطاق باستخدام VBA
- استخدم كائن النطاق لتحديد النطاق الذي تريد فرزه.
- اكتب فترة وأدخل طريقة الفرز.
- حدد المفتاح الذي تريد استخدامه للفرز.
- قم بتعيين ترتيب الفرز.
- اذكر ما إذا كان لديك رأس أم لا.
Range("A1:A11").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Header:=xlYes
في الكود أعلاه، استخدمت النطاق A1:A11، وفي طريقة الفرز التي استخدمتها بترتيب تصاعدي، ذكرت أن لديك رأسًا في النطاق.
فهم طريقة الفرز في VBA
قبل كتابة ماكرو لفرز نطاق، من الأفضل التعمق في طريقة الفرز وفهم وسيطاتها.
Sort (Key1, Order1, Key2, Type, Order2, Key3, Order3, _ Header, OrderCustom, MatchCase, Orientation, SortMethod, _ DataOption1, DataOption2, DataOption3)
فيما يلي أهم الحجج التي ستستخدمها في الحياة الواقعية.
- المفتاح : هنا تحتاج إلى تحديد الخلية التي تريد استخدام عمودها كأساس للفرز.
- الترتيب : الترتيب الذي تريد فرز العمود به (تصاعدي/تنازلي).
- الرأس : ثابت لتحديد ما إذا كان لديك رأس أم لا أو تريد أن يخمنه VBA.
الترتيب تنازليًا
في التعليمة البرمجية التالية، استخدمت “xlDescending” لفرز عمود المبلغ بترتيب تنازلي.
Range("A1:A13").Sort Key1:=Range("A1"), _ Order1:=xlDescending, _ Orientation:=xlSortColumns
استخدام أعمدة متعددة (مفاتيح) للفرز
يمكنك أيضًا استخدام أعمدة متعددة لفرز نطاق. لنأخذ مثالاً من الجدول أدناه حيث لديك إدخالات متعددة بأسماء الموظفين والمدن، وتحتاج إلى الفرز باستخدام الاسم والمدينة.
إليك الرمز الذي تحتاج إلى استخدامه:
Range("A1:C13").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Key2:=Range("B1"), _ Order1:=xlAscending, _ Header:=xlYes
كما ترون في الكود لديك key1 وkey2. في المفتاح 1 لديك العمود الذي يحتوي على اسم الموظف، وفي المفتاح 2 لديك عمود المدينة. بالنسبة لكلا العمودين، يكون ترتيب الفرز تصاعديًا وتكون الرؤوس موجودة.
ملاحظة: يمكنك استخدام هذا كأي عمود تريد استخدامه كأساس للفرز باستخدام المفاتيح والترتيب.
تغيير اتجاه المصير
عندما تقوم عادةً بفرز البيانات في Excel، يمكنك الفرز باستخدام الأعمدة بشكل افتراضي. ولكن من خلال خيارات الفرز، يمكنك تغيير اتجاه الفرز من اليسار إلى اليمين بدلاً من الأعلى إلى الأسفل.
وبالمثل، لديك وسيطة في طريقة الفرز لتغيير الاتجاه ( رابط ).
Range("A1:C13").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Orientation:=xlSortRows
الدروس ذات الصلة
- إدراج عمود VBA (مفرد ومتعدد)
- النطاق المسمى VBA | (ثابت + تحديد + ديناميكي)
- إزاحة نطاق VBA
- VBA Wrap Text (الخلية والنطاق وورقة العمل بأكملها)
- VBA التحقق مما إذا كانت الخلية فارغة + خلايا متعددة