Encuentre el segundo valor más alto en Excel VBA - Macros de Excel fáciles

Tabla de contenido

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

Situación:

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.

Atenuar como rango, celda como rango
Atenuar el valor más alto como doble, segundo valor más alto como doble

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

Establecer rng = Selección
valor más alto = 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:

'Encuentra el valor más alto
Para cada celda en rng
Siguiente celda

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.

Si celda.Valor> valor más alto Entonces valor más alto = celda.Valor

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.

'Encuentra el segundo valor más alto
Para cada celda en rng
Siguiente celda

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 Y cell.Value <valor más alto Entonces secondHighestValue = cell.Value

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

MsgBox "El segundo valor más alto es" & 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:

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave