A continuación, veremos un programa en Excel VBA que encuentra el segundo valor más alto .

Situación:

Encuentre el segundo valor más alto en Excel VBA

1. Primero, declaramos dos objetos Range y dos variables de tipo Double. Llamamos a los objetos Range rng y cell. Una variable doble que llamamos valor más alto y una variable doble que llamamos valor más alto.

Dim rng As Range, cell As Range
Dim highestValue As Double, secondHighestValue As Double

2. Inicializamos el objeto Range rng con el rango seleccionado y las dos variables Double con valor 0.

Set rng = Selection
highestValue = 0
secondHighestValue = 0

3. Primero, queremos encontrar el valor más alto. Queremos verificar cada celda en un rango seleccionado al azar (este rango puede ser de cualquier tamaño). En Excel VBA, puede usar el ciclo For Each Next para esto. Agregue las siguientes líneas de código:

'Find Highest Value
For Each cell In rng

Next cell

Nota: rng y cell se eligen al azar aquí, puede usar cualquier nombre. Recuerde hacer referencia a estos nombres en el resto de su código. La línea verde es un comentario y solo se agrega aquí para proporcionar información sobre este fragmento de código.

4. Comprobamos cada celda de este rango. Si es superior al valor más alto, escribimos el valor en la variable valor más alto. Agregue la siguiente línea de código al bucle.

If cell.Value > highestValue Then highestValue = cell.Value

Nota: el primer valor es siempre mayor que el valor más alto porque el valor inicial de valor más alto es 0.

5. En segundo lugar, queremos encontrar el segundo valor más alto. Agregamos otro bucle For Each Next.

'Find Second Highest Value
For Each cell In rng

Next cell

6. Revisamos cada celda en el rango seleccionado nuevamente. Si es más alto que secondHighestValue y más bajo que más altoValue, escribimos el valor en la variable secondHighestValue. Agregue la siguiente línea de código al bucle.

If cell.Value > secondHighestValue And cell.Value < highestValue Then secondHighestValue = cell.Value

7. Finalmente, mostramos el segundo valor más alto usando un MsgBox.

MsgBox "Second Highest Value is " & secondHighestValue

8. Coloque su macro en un botón de comando, seleccione los números y haga clic en el botón de comando.

Resultado:

Encontrar el segundo resultado de valor más alto

7/9 ¡Completado! Obtenga más información sobre las declaraciones if then>
Siguiente capítulo: bucle