Trova secondo valore più alto in Excel VBA
Di seguito vedremo un programma in Excel VBA che trova il secondo valore più alto.
Situazione:
-
In primo luogo, si dichiara due oggetti Gamma e due variabili di tipo Double. Chiamiamo la gamma di oggetti RNG e delle cellule. Una camera variabile che chiamiamo highestValue, e una variabile doppia che chiamano secondHighestValue.
Dim rng As Range, cell As Range Dim highestValue As Double, secondHighestValue As Double
-
inizializzare il RNG oggetto Range con l’intervallo selezionato e le due variabili doppie con valore 0.
Set rng = Selection highestValue = 0 secondHighestValue = 0
-
In primo luogo, vogliamo trovare il valore più alto. Noi vogliamo controllare ogni cella in un intervallo selezionato in modo casuale (questo intervallo può essere di qualsiasi dimensione). In Excel VBA, è possibile utilizzare il ciclo For Each di questo componente. Aggiungere le seguenti righe di codice:
'Find Highest Value For Each cell In rng Next cell
Nota: RNG e cellule sono scelti a caso qui, è possibile utilizzare qualsiasi nome.
Ricordarsi di fare riferimento a questi nomi nel resto del codice. La linea verde è un commento e si aggiunge qui solo per fornire informazioni su questo pezzo di codice.
-
Controlliamo ogni cella in questa gamma. Se è superiore a quello highestValue, scriviamo il valore alla highestValue variabile. Aggiungere la seguente riga di codice al ciclo.
If cell.Value > highestValue Then highestValue = cell.Value
Nota: il primo valore è sempre superiore highestValue perché il valore iniziale di highestValue è 0.
-
In secondo luogo, vogliamo trovare il secondo più alto valore. Aggiungiamo un altro ciclo For Each Avanti.
'Find Second Highest Value For Each cell In rng Next cell
-
Controlliamo ogni cella nell’intervallo selezionato nuovamente. Se è superiore a quello secondHighestValue ed inferiore highestValue, scriviamo il valore alla secondHighestValue variabile. Aggiungere la seguente riga di codice al ciclo.
If cell.Value > secondHighestValue And cell.Value < highestValue Then secondHighestValue = cell.Value
-
Infine, visualizzare il secondo valore più alto utilizzando un MsgBox.
MsgBox "Second Highest Value is " & secondHighestValue
-
Posizionare la macro in un pulsante di comando, selezionare i numeri e fare clic sul pulsante di comando.
Risultato: