Valor de búsqueda de VBA en columna

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

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

Recorrer una columna con Range.Find y Range.FindNext

En el siguiente ejemplo, 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. Luego usaremos el método Range.FindNext para pasar a la siguiente celda y continuar buscando la palabra, continuando el ciclo hasta el final del rango de celdas especificado.

1234567891011121314151617 Sub FindLoop ()Dim strFirstAddress como cadenaDim rngFindValue como rangoDim rngSearch As RangeDim rngFind como rangoEstablecer rngFind = ActiveSheet.Range ("F1: F17")Establecer rngSearch = rngFind.Cells (rngFind.Cells.Count)Establecer rngFindValue = rngFind.Find ("Vencido", rngSearch, xlValues)Si no rngFindValue no es nada, entoncesstrFirstAddress = rngFindValue.AddressrngFindValue.Font.Color = vbRedHacerEstablecer rngFindValue = rngFind.FindNext (rngFindValue)rngFindValue.Font.Color = vbRedBucle hasta rngFindValue.Address = strFirstAddressTerminara siEnd Sub

Cuando se ejecuta el código, guarda la dirección de la primera celda donde se encuentran los datos en la variable strFirstAddress y cambia el color del texto a rojo. Luego 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 la dirección de la celda donde se encuentra el valor se compara con la cadena strFirstAddress. Si no son iguales, el ciclo continúa, encontrando cada instancia de la palabra "Atrasado". Una vez que el bucle llega al final del rango de celdas (es decir, F17), comenzará de nuevo al comienzo del rango (F1) y continuará el bucle. Una vez que llega a la dirección de celda F3 por segunda vez, ya que es la misma que la variable almacenada strFirstAddress, el bucle se detendrá.

wave wave wave wave wave