/ / מיין מספרים ב- Excel VBA

מיין מספרים ב - VBA של

להלן נבחן תוכנית ב Excel VBA כי מספרי מיון.

מצב:

מיין דוגמאות למספרים

הצב לחצן פקודה בגליון העבודה והוסף את שורות הקוד הבאות:

1. ראשית, אנו מכריזים על שלושה משתנים של מספר שלם ואובייקט טווח אחד.

Dim i As Integer, j As Integer, temp As Integer, rng As Range

2. אנו מאתחלים את האובייקט rng של האובייקטים עם המספרים בעמודה A. אנו משתמשים במאפיין CurrentRegion עבור פעולה זו. CurrentRegion שימושי כאשר אנחנו לא "לא יודע את הגבולות המדויקים של טווח מראש (אנחנו רוצים תוכנית זו לעבוד עבור 9 מספרים, אלא גם עבור 90 מספרים).

Set rng = Range("A1").CurrentRegion

3. אנחנו מתחילים שני לולאות הבא.

For i = 1 To rng.Count
    For j = i + 1 To rng.Count

הסבר: rng.Count שווה ל -9, ולכן שני קווי הקוד הראשונים מצמצמים ל- i = 1 עד 9 ו- j = i + 1 עד 9. עבור i = 1, j = 2, 3, ... 8 ו- 9 מסומנות.

4. כדי למיין את המספרים כראוי, אנו משווים את המספר הראשון עם המספר הבא. אם המספר הבא הוא קטן יותר, אנחנו מחליפים את המספרים. הוסף את ההצהרה הבאה אם ​​כן.

If rng.Cells(j) < rng.Cells(i) Then

End If

אם ההצהרה לעיל נכונה, אנו מחליפים את המספרים.

לדוגמה: עבור i = 1 ו- j = 2, המספרים 2 ו- 10 מושווים. האמירה לעיל אינה נכונה. לכן, אין צורך להחליף את המספרים. Excel VBA מגדיל j על ידי 1 וחוזר על השורות קוד i = 1 ו- j = 3. אתה יכול בקלות לראות כי 5 הוא גדול מ 2, ולכן עדיין אין צורך להחליף את המספרים. אנו מקבלים את אותה תוצאה עבור j = 4, j = 5 ו- j = 6. כאשר אנו מגיעים ל- j = 7, ההצהרה לעיל נכונה מכיוון ש- 1 קטן מ- 2.

5. אנחנו מחליפים את המספרים. אנחנו באופן זמני לאחסן מספר אחד כדי זמני, כך Excel VBA יכול להחליף את המספרים כראוי. הוסף את שורות הקוד הבאות בהצהרה אם.

"swap numbers
temp = rng.Cells(i)
rng.Cells(i) = rng.Cells(j)
rng.Cells(j) = temp

6. אנחנו סוגרים את השני לולאה הבאה (מחוץ להצהרה אם).

Next j

עבור i = 1 ו- j = 7, ה- Excel VBA החליף אתמספרים. זה אומר שאנחנו מקבלים 1 במיקום הראשון ו 2 במצב 7. עכשיו שיש לנו 1 במיקום הראשון, נשווה ערך זה עם 5 (עבור j = 8) ו 4 (עבור j = 9). אין צורך להחליף את המספרים (1 הוא המספר הקטן ביותר). בדרך זו Excel VBA מקבל (עבור i = 1) את המספר הקטן ביותר במיקום הראשון. כדי לקבל את המספר השני הקטן ביותר במיקום השני, Excel VBA חוזר על אותם השלבים עבור i = 2. כדי לקבל את המספר השלישי הקטן ביותר במיקום השלישי, Excel VBA חוזר על אותם השלבים עבור i = 3, וכו '

.7 סגור את הלולאה הראשונה של Next (מחוץ להצהרה).

Next i

8. בדוק את התוכנית.

תוצאה:

מיין מספרים ב - VBA של

קרא גם: