Ταξινόμηση αριθμών στο Excel VBA - Εύκολες μακροεντολές Excel

Πίνακας περιεχομένων

Παρακάτω θα δούμε ένα πρόγραμμα στο Excel VBA ότι ταξινομεί τους αριθμούς.

Κατάσταση:

Τοποθετήστε ένα κουμπί εντολών στο φύλλο εργασίας σας και προσθέστε τις ακόλουθες γραμμές κώδικα:

1. Αρχικά, δηλώνουμε τρεις μεταβλητές τύπου Integer και ένα αντικείμενο Range.

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

2. Αρχικοποιούμε το αντικείμενο Range rng με τους αριθμούς στη στήλη A. Χρησιμοποιούμε την ιδιότητα CurrentRegion για αυτό. Το CurrentRegion είναι χρήσιμο όταν δεν γνωρίζουμε τα ακριβή όρια ενός εύρους εκ των προτέρων (θέλουμε αυτό το πρόγραμμα να λειτουργεί για 9 αριθμούς αλλά και για 90 αριθμούς).

Ρύθμιση rng = Εύρος ("A1"). CurrentRegion

3. Ξεκινάμε δύο βρόχους For Next.

Για i = 1 Προς rng.Count
Για j = i + 1 έως rng.Count

Επεξήγηση: rng. Ο αριθμός ισούται με 9, οπότε οι δύο πρώτες γραμμές κώδικα μειώνονται σε Για i = 1 έως 9 και Για j = i + 1 έως 9. Για i = 1, j = 2, 3,…, 8 και 9 ελέγχονται .

4. Για να ταξινομήσουμε σωστά τους αριθμούς, συγκρίνουμε τον πρώτο αριθμό με τον επόμενο αριθμό. Εάν ο επόμενος αριθμός είναι μικρότερος, αλλάζουμε τους αριθμούς. Προσθέστε την ακόλουθη δήλωση If then.

Αν rng.Cells (j) <rng.Cells (i) Τότε
Τέλος εαν

Εάν η παραπάνω πρόταση είναι αληθής, αλλάζουμε τους αριθμούς.

Για παράδειγμα: για 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 να μπορεί να ανταλλάξει σωστά τους αριθμούς. Προσθέστε τις ακόλουθες γραμμές κώδικα στη δήλωση If.

«ανταλλαγή αριθμών
temp = rng. Κελιά (i)
rng. Κελιά (i) = rng. Κελιά (j)
rng.Cells (j) = temp

6. Κλείνουμε τον δεύτερο βρόχο For Next (Outside the If).

Επόμενο 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. Κλείστε τον πρώτο βρόχο For Next (Έξω από τη δήλωση If).

Επόμενο i

8. Δοκιμάστε το πρόγραμμά σας.

Αποτέλεσμα:

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave