Ordina casualmente i dati in Excel VBA - Macro semplici di Excel

Sommario

Di seguito vedremo un programma in Excel VBA Quello ordina casualmente i dati (in questo esempio ordina casualmente i nomi).

Situazione:

1. Innanzitutto, dichiariamo quattro variabili. Una variabile di tipo String chiamiamo TempString, una variabile di tipo Integer chiamiamo TempInteger, una variabile di tipo Integer chiamiamo i e una variabile di tipo Integer chiamiamo j.

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

2. Scriviamo 5 numeri casuali nella colonna B (uno per ogni nome). Usiamo la funzione del foglio di lavoro RandBetween per questo.

Per i = da 1 a 5
Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000)
Avanti io

Risultato finora:

Useremo i numeri accanto a ciascun nome per ordinare i nomi. Il nome con il numero più basso per primo, il nome con il secondo numero più basso, il secondo, ecc.

3. Iniziamo un Double Loop.

Per i = da 1 a 5
Per j = i + 1 a 5

4. Aggiungi la seguente riga di codice:

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

Esempio: per i = 1 e j = 2, Wendy e Richard vengono confrontati. Poiché Richard ha un numero inferiore, scambiamo Wendy e Richard. Richard è in prima posizione ora. Per i = 1 e j = 3, vengono confrontati Richard e Joost. Joost ha un numero più alto quindi non succede nulla. In questo modo, Excel VBA ottiene il nome con il numero più basso nella prima posizione. Per i = 2, Excel VBA ottiene il nome con il secondo numero più basso nella seconda posizione, ecc.

5. Se vero, scambiamo i nomi.

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

6. E scambiamo i numeri.

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

7. Non dimenticare di chiudere l'istruzione If.

Finisci se

8. Non dimenticare di chiudere i due loop.

 Avanti j
Avanti io

9. Testare il programma.

Risultato:

Nota: puoi aggiungere una riga che elimina i numeri nella colonna B. È ancora più bello posizionare i numeri di ciascun nome in una matrice, quindi nessun numero viene inserito nel foglio di lavoro. Tuttavia, a scopo illustrativo, abbiamo scelto di posizionare i valori sul foglio.

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

wave wave wave wave wave