Encontre o segundo valor mais alto no Excel VBA - Macros fáceis do Excel

Índice

Abaixo, veremos um programa em Excel VBA que encontra o segundo valor mais alto.

Situação:

1. Primeiro, declaramos dois objetos Range e duas variáveis ​​do tipo Double. Chamamos os objetos Range de rng e cell. Uma variável dupla que chamamos de maximumValue e uma variável dupla que chamamos de secondHighestValue.

Dim rng como intervalo, célula como intervalo
Dim higherValue As Double, secondHighestValue As Double

2. Inicializamos o objeto Range rng com o intervalo selecionado e as duas variáveis ​​Double com valor 0.

Definir rng = Seleção
maximumValue = 0
secondHighestValue = 0

3. Primeiro, queremos encontrar o valor mais alto. Queremos verificar cada célula em um intervalo selecionado aleatoriamente (este intervalo pode ser de qualquer tamanho). No Excel VBA, você pode usar o loop For Each Next para isso. Adicione as seguintes linhas de código:

'Encontre o valor mais alto
Para cada célula em rng
Próxima célula

Nota: rng e cell são escolhidos aleatoriamente aqui, você pode usar qualquer nome. Lembre-se de referir-se a esses nomes no restante do código. A linha verde é um comentário e é adicionada aqui apenas para fornecer informações sobre este trecho de código.

4. Verificamos cada célula neste intervalo. Se for maior do que o valor mais alto, gravamos o valor na variável valor mais alto. Adicione a seguinte linha de código ao loop.

If cell.Value> higherValue Then higherValue = cell.Value

Observação: o primeiro valor é sempre maior que higherValue porque o valor inicial de higherValue é 0.

5. Em segundo lugar, queremos encontrar o segundo valor mais alto. Adicionamos outro loop For Each Next.

'Encontre o segundo valor mais alto
Para cada célula em rng
Próxima célula

6. Verificamos cada célula no intervalo selecionado novamente. Se for maior que secondHighestValue e menor que higherValue, gravamos o valor na variável secondHighestValue. Adicione a seguinte linha de código ao loop.

If cell.Value> secondHighestValue E cell.Value <higherValue Then secondHighestValue = cell.Value

7. Finalmente, exibimos o segundo valor mais alto usando um MsgBox.

MsgBox "O segundo valor mais alto é" & secondHighestValue

8. Coloque sua macro em um botão de comando, selecione os números e clique no botão de comando.

Resultado:

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave