/ / Encuentra el segundo valor más alto en Excel VBA

Encuentra el segundo valor más alto en Excel VBA

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

Situación:

Encuentra el segundo valor más alto en Excel VBA

1. En primer lugar, declaramos dos objetos Range y dos variables de tipo Double. Llamamos a los objetos Range rng y cell. Una variable doble que llamamos highValue y una variable doble que llamamos secondHighestValue.

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

2. Inicializamos el objeto Rango rng con el rango seleccionado y las dos variables Dobles 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 bucle 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 la celda se seleccionan al azar aquí, puedes usar cualquier nombre. Recuerde referirse 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 en este rango. Si es más alto que el 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 siempre es más alto que el valor más alto porque el valor de inicio del valor más alto es 0.

5. Segundo, queremos encontrar el segundo valor más alto. Añadimos otro bucle For Each Next.

"Find Second Highest Value
For Each cell In rng

Next cell

6. Comprobamos de nuevo cada celda en el rango seleccionado. Si es más alto que secondHighestValue y más bajo que peakValue, 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:

Encuentra el segundo resultado de mayor valor

Lea también: