VBA Buscar Valor en Columna

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on diciembre 28, 2022

Este artículo demostrará cómo utilizar VBA para buscar un valor en una columna.

Podemos utilizar Range.Find para recorrer una columna de valores en VBA y encontrar todas las celdas del rango que coincidan con los criterios especificados.

Recorrer una Columna con Range.Find y Range.FindNext

En el ejemplo siguiente, estamos recorriendo los datos de la columna y buscando la palabra «Atrasado». Cuando encuentre la palabra, marcará la celda cambiando el color del texto de la celda a rojo. A continuación, utilizará el método Range.FindNext para pasar a la siguiente celda y seguir buscando la palabra, continuando el bucle hasta el final del rango de celdas especificado.

Sub Bucle_Buscar()
 Dim strFirstAddress As String
 Dim rngFindValue As Range
 Dim rngSearch As Range
 Dim rngFind As Range
 Set rngFind = ActiveSheet.Range("F1:F17")
 Set rngSearch = rngFind.Cells(rngFind.Cells.Count)
 Set rngFindValue = rngFind.Find("Atrasado", rngSearch, xlValues)
 If Not rngFindValue Is Nothing Then
   strFirstAddress = rngFindValue.Address
   rngFindValue.Font.Color = vbRed
   Do
     Set rngFindValue = rngFind.FindNext(rngFindValue)
     rngFindValue.Font.Color = vbRed
  Loop Until rngFindValue.Address = strFirstAddress
 End If
End Sub

Cuando el código se ejecuta, guarda la dirección de la primera celda donde se encuentra el dato en la variable strFirstAddress y cambia el color del texto a rojo. A continuación, se crea un bucle para encontrar la siguiente celda que contiene los datos requeridos. Cuando se encuentra el valor, el color del texto cambia a rojo y luego se compara la dirección de la celda donde se encuentra el valor con la cadena strFirstAddress. Si no coinciden, el bucle continúa, encontrando cada instancia de la palabra «Atrasado». Una vez que el bucle llega al final del rango de celdas (es decir, F17), vuelve al principio del rango (F1) y continúa el bucle. Una vez que alcanza la dirección de la celda F3 por segunda vez, ya que es la misma que la variable almacenada strFirstAddress, el bucle se detendrá.

Tabla Ejemplo Range Find

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples