/ / عشوائيا فرز البيانات في Excel VBA

عشوائيا فرز البيانات في Excel VBA

أدناه سننظر في برنامج في Excel VBA أن فرز البيانات بشكل عشوائي (في هذا المثال فرز أسماء عشوائياً).

موقف:

عشوائيا فرز البيانات في Excel VBA

1. أولا ، نعلن عن أربعة متغيرات. متغير واحد من النوع String نطلق عليه TempString ، متغير واحد من النوع Integer نسميه TempInteger ، متغير واحد من النوع Integer نسميه i ، ومتغير واحد من النوع Integer الذي نطلق عليه j.

Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer

2. نكتب 5 أرقام عشوائية إلى العمود B (واحد لكل اسم). نستخدم وظيفة ورقة العمل RandBetween لهذا.

For i = 1 To 5
    Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000)
Next i

النتيجة حتى الآن:

النتيجة حتى الآن

سنستخدم الأرقام الموجودة بجانب كل اسم لفرز الأسماء. الاسم الذي يحتوي على أقل عدد أولاً ، الاسم الذي يحتوي على ثاني أقل عدد وثاني ، إلخ.

3. نبدأ حلقة مزدوجة.

For i = 1 To 5
    For j = i + 1 To 5

4. أضف سطر الرمز التالي:

If Cells(j, 2).Value < Cells(i, 2).Value Then

مثال: ل i = 1 و j = 2 ، تتم مقارنة ويندي وريتشارد. ولأن ريتشارد لديها عدد أقل ، سنقوم بمبادلة ويندي وريتشارد. ريتشارد في الموضع الأول الآن. ل i = 1 و j = 3 ، تتم مقارنة ريتشارد وجوست. لدى جوست رقم أعلى حتى لا يحدث أي شيء. بهذه الطريقة ، يحصل Excel VBA على الاسم ذو العدد الأقل في الموضع الأول. بالنسبة إلى i = 2 ، يحصل Excel VBA على الاسم الذي يحتوي على ثاني أقل رقم في الموضع الثاني ، إلخ.

5. إذا كان هذا صحيحًا ، سنقوم بتبديل الأسماء.

tempString = Cells(i, 1).Value
Cells(i, 1).Value = Cells(j, 1).Value
Cells(j, 1).Value = tempString

6. ونقوم مبادلة الأرقام.

tempInteger = Cells(i, 2).Value
Cells(i, 2).Value = Cells(j, 2).Value
Cells(j, 2).Value = tempInteger

7. لا تنس أن تغلق بيان If.

End If

8. لا تنس أن تغلق الحلقتين.

    Next j
Next i

9. اختبار البرنامج.

نتيجة:

فرز عشوائي للبيانات النتيجة

ملحوظة: يمكنك إضافة سطر يقوم بحذف الأرقام الموجودة في العمود B. إنه "أفضل حتى لوضع أرقام كل اسم في مصفوفة ، لذلك لا يتم وضع أي أرقام في ورقة العمل الخاصة بك. ومع ذلك ، لغرض توضيحي" اخترنا وضع القيم على الورقة.

اقرأ أيضًا: