VBA Encontrar Valor na Coluna

Este artigo demonstrará como usar o VBA para localizar um valor em uma coluna.

Podemos usar Range.Find para percorrer uma coluna de valores em VBA para encontrar todas as células no intervalo que correspondem aos critérios especificados.

Loop através de uma coluna com Range.Find e Range.FindNext

No exemplo abaixo, estamos percorrendo os dados da coluna e procurando a palavra “Atrasado”. Ao encontrar a palavra, ele marcará a célula alterando a cor do texto da célula para vermelho. Em seguida, usará o método Range.FindNext para mover para a próxima célula e continuar a procurar a palavra, continuando o loop até o final do intervalo de células especificado.

1234567891011121314151617 Sub FindLoop ()Dim strFirstAddress As StringDim rngFindValue As RangeDim rngSearch As RangeDim rngFind As RangeDefina rngFind = ActiveSheet.Range ("F1: F17")Defina rngSearch = rngFind.Cells (rngFind.Cells.Count)Defina rngFindValue = rngFind.Find ("Overdue", rngSearch, xlValues)Se não rngFindValue é nada, entãostrFirstAddress = rngFindValue.AddressrngFindValue.Font.Color = vbRedFazerDefina rngFindValue = rngFind.FindNext (rngFindValue)rngFindValue.Font.Color = vbRedLoop até rngFindValue.Address = strFirstAddressFim seEnd Sub

Quando o código é executado, ele salva o endereço da primeira célula onde os dados são encontrados na variável strFirstAddress e muda a cor do texto para vermelho. Um loop é então criado para encontrar a próxima célula que contém os dados necessários. Quando o valor é encontrado, a cor do texto muda para vermelho e então o endereço da célula onde o valor é encontrado é comparado com a string strFirstAddress. Se não forem iguais, o loop continua, encontrando cada instância da palavra “Atrasado”. Assim que o loop atingir o final do intervalo de células (ou seja, F17), ele começará de volta no início do intervalo (F1) e continuará a executar o loop. Uma vez que atinge o endereço da célula F3 pela segunda vez, pois é o mesmo que a variável armazenada strFirstAddress, o loop irá parar.

wave wave wave wave wave