Ordina i numeri in Excel VBA - Macro semplici di Excel

Sommario

Di seguito vedremo un programma in Excel VBA Quello ordina i numeri.

Situazione:

Posiziona un pulsante di comando sul foglio di lavoro e aggiungi le seguenti righe di codice:

1. Innanzitutto, dichiariamo tre variabili di tipo Integer e un oggetto Range.

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

2. Inizializziamo l'oggetto Range rng con i numeri nella colonna A. Usiamo la proprietà CurrentRegion per questo. CurrentRegion è utile quando non conosciamo in anticipo i confini esatti di un intervallo (vogliamo che questo programma funzioni per 9 numeri ma anche per 90 numeri).

Imposta rng = Range("A1").CurrentRegion

3. Iniziamo due cicli For Next.

Per i = 1 a rng.Count
Per j = i + 1 Per rng.Count

Spiegazione: rng.Count è uguale a 9, quindi le prime due righe di codice si riducono a For i = da 1 a 9 e For j = i + 1 a 9. Per i = 1, j = 2, 3,… , 8 e 9 sono controllati .

4. Per ordinare correttamente i numeri, confrontiamo il primo numero con il numero successivo. Se il numero successivo è più piccolo, scambiamo i numeri. Aggiungi la seguente istruzione If Then.

Se rng.Cells(j) < rng.Cells(i) Allora
Finisci se

Se l'affermazione di cui sopra è vera, scambiamo i numeri.

Ad esempio: per i = 1 e j = 2, vengono confrontati i numeri 2 e 10. L'affermazione di cui sopra non è vera. Quindi, non c'è bisogno di scambiare i numeri. Excel VBA incrementa j di 1 e ripete le righe di codice per i = 1 e j = 3. Puoi facilmente vedere che 5 è maggiore di 2, quindi non è ancora necessario scambiare i numeri. Otteniamo lo stesso risultato per j = 4, j = 5 e j = 6. Quando arriviamo a j = 7, l'affermazione precedente è vera poiché 1 è minore di 2.

5. Scambiamo i numeri. Memorizziamo temporaneamente un numero su temp, in modo che Excel VBA possa scambiare correttamente i numeri. Aggiungere le seguenti righe di codice nell'istruzione If.

"scambiare numeri"
temp = rng.Cells(i)
rng.Cells(i) = rng.Cells(j)
rng.Cells(j) = temp

6. Chiudiamo il secondo ciclo For Next (fuori dall'istruzione If).

Avanti j

Per i = 1 e j = 7, Excel VBA ha scambiato i numeri. Ciò significa che otteniamo 1 alla prima posizione e 2 alla posizione 7. Ora che abbiamo 1 alla prima posizione, confronteremo questo valore con 5 (per j = 8) e 4 (per j = 9). Non è necessario scambiare i numeri (1 è il numero più piccolo). In questo modo Excel VBA ottiene (per i = 1) il numero più piccolo nella prima posizione. Per ottenere il secondo numero più piccolo nella seconda posizione, Excel VBA ripete esattamente gli stessi passaggi per i = 2. Per ottenere il terzo numero più piccolo nella terza posizione, Excel VBA ripete esattamente gli stessi passaggi per i = 3, ecc.

7. Chiudere il primo ciclo For Next (fuori dall'istruzione If).

Avanti io

8. Testa il tuo programma.

Risultato:

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave