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:
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 highestValue As Double, secondHighestValue As Double
2. Inicializamos el objeto Rango rng con el rango seleccionado y las dos variables Dobles con valor 0.
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:
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.
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.
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.
7. Finalmente, mostramos el segundo valor más alto usando un MsgBox.
8. Coloque su macro en un botón de comando, seleccione los números y haga clic en el botón de comando.
Resultado: