Casualmente ordinare i dati in Excel VBA
Di seguito vedremo un programma in Excel VBA che ordina in modo casuale i dati (in questo esempio ordina in modo casuale i nomi).
Situazione:
-
In primo luogo, si dichiara quattro variabili. Una variabile di tipo stringa che chiamiamo TempString, una variabile di tipo Integer che chiamiamo TempInteger, una variabile di tipo Integer che noi chiamiamo i, e una variabile di tipo Integer che chiamiamo j.
Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer
-
Scriviamo 5 numeri casuali a colonna B (una per ogni nome). Usiamo la funzione del foglio di lavoro CASUALE.TRA per questo.
For i = 1 To 5 Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000) Next i
Risultato finora:
Useremo i numeri accanto a ciascun nome per ordinare i nomi. Il nome con il numero più basso prima, il nome con il numero di secondo più basso, secondo, ecc
-
Iniziamo un Double Loop.
For i = 1 To 5 For j = i + 1 To 5
-
Aggiungere 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. Perché Richard ha un numero più basso, noi scambiare Wendy e Richard. Richard è in prima posizione ora. Per i = 1 e j = 3, Richard e Joost sono confrontati.
Joost ha un numero superiore in modo 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 numero di secondo più basso nella seconda posizione, ecc
-
Se fosse vero, ci collegamento
: / VBA-esempi-casse mobili valori [di swap]
i nomi.
tempString = Cells(i, 1).Value Cells(i, 1).Value = Cells(j, 1).Value Cells(j, 1).Value = tempString
-
E ci scambiamo i numeri.
tempInteger = Cells(i, 2).Value Cells(i, 2).Value = Cells(j, 2).Value Cells(j, 2).Value = tempInteger
-
Non dimenticare di chiudere l’istruzione if.
End If
-
Non dimenticare di chiudere i due anelli.
Next j Next i
-
Verificare il programma.
Risultato:
Nota: è possibile aggiungere una linea che cancella i numeri nella colonna B è ancora più bello di inserire il numero di ogni nome di un array, quindi non i numeri sono immessi sul foglio di lavoro. Tuttavia, per fini illustrativi abbiamo scelto di inserire i valori sul foglio.