فبا: كيفية فرز ورقة حسب أعمدة متعددة
يمكنك استخدام بناء الجملة الأساسي التالي لفرز ورقة Excel حسب أعمدة متعددة باستخدام VBA:
Sub SortMultipleColumns()
Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, _
Key2:=Range(" B1 "), Order2:=xlDescending, _
Header:=xlYes
End Sub
يقوم هذا المثال تحديدًا بفرز الخلايا الموجودة في النطاق A1:B11 أولاً حسب القيم الموجودة في العمود A بترتيب تصاعدي، ثم حسب القيم الموجودة في العمود B بترتيب تنازلي.
لاحظ أن Header:=xlYes يحدد أنه يجب التعامل مع السطر الأول كخط رأس.
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: فرز ورقة Excel حسب أعمدة متعددة باستخدام VBA
لنفترض أن لدينا مجموعة البيانات التالية في Excel والتي تحتوي على معلومات حول العديد من لاعبي كرة السلة:
لنفترض أننا نريد فرز مجموعة البيانات بالطريقة التالية:
- أولاً، قم بالفرز حسب القيم الموجودة في عمود الفريق بترتيب تصاعدي (من أ إلى ي).
- بعد ذلك، قم بالفرز حسب القيم الموجودة في عمود النقاط بترتيب تنازلي (من الأكبر إلى الأصغر).
يمكننا إنشاء الماكرو التالي للقيام بذلك:
Sub SortMultipleColumns()
Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, _
Key2:=Range(" B1 "), Order2:=xlDescending, _
Header:=xlYes
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
يتم الآن فرز الصفوف حسب اسم الفريق بترتيب تصاعدي وحسب النقاط بترتيب تنازلي.
ملاحظة رقم 1 : في هذا المثال، قمنا بالفرز على عمودين. ومع ذلك، يمكنك تحديد أي عدد تريده من المفاتيح لفرز المزيد من الأعمدة.
ملاحظة رقم 2 : يمكنك العثور على الوثائق الكاملة لطريقة فرز VBA هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
فبا: كيفية كتابة وظائف AVERAGEIF وAVERAGEIFS
VBA: كيفية كتابة وظائف SUMIF وSUMIFS
VBA: كيفية كتابة وظائف COUNTIF وCOUNTIFS