Encuentra el método del objeto Range

Anonim

En este artículo, usaremos el método de búsqueda del objeto Range para resaltar la celda que contiene el valor similar a las palabras de búsqueda.

Los datos sin procesar para este ejemplo consisten en el nombre de la empresa, la identificación del empleado y el nombre del empleado. Disponemos de datos brutos de distintas empresas.

En este ejemplo, queremos encontrar y resaltar la celda que coincida con el nombre de empresa definido en particular en la celda I8.

Para resaltar las celdas con nombres de empresas particulares, ingrese el nombre de la empresa en la celda I8 y haga clic en el botón "Enviar". Al botón "Enviar" se le asigna la macro "HighlightMatchingResult".

La macro "HighlightMatchingResult" resaltará la celda que contiene el nombre de la empresa correspondiente con el color amarillo.

Explicación lógica

En este ejemplo, hemos creado una función personalizada "FindRange" y una macro "HighlightMatchingResult".

La función personalizada "FindRange" creará un rango con todas las celdas que contienen un valor similar al nombre de la empresa buscada.

La macro "HighlightMatchingResult" llamará a la función personalizada y resaltará el rango devuelto por la función personalizada en color amarillo.

Explicación del código

SearchRange.Find (Qué: = FindItem)

El código anterior se usa para encontrar la celda que contiene un valor similar a FindItem.

Unión (FindRange, MatchingRange)

El código anterior se usa para combinar dos rangos en un solo rango.

SearchRange.FindNext (MatchingRange)

El código anterior se usa para encontrar la siguiente celda que contiene un valor similar a FindItem.

Siga a continuación para obtener el código

 Opción Función explícita FindRange (FindItem como variante, SearchRange como rango) Como rango 'Declarando variables Dim MatchingRange como rango Dim FirstAddress como cadena con SearchRange' Encontrar el rango cuyo valor coincide con FindItem Establecer MatchingRange = .Find (Qué: = FindItem) 'Comprobación si existe alguna coincidencia Si no MatchingRange no es nada, entonces establezca FindRange = MatchingRange 'Obteniendo la dirección del primer rango coincidente FirstAddress = MatchingRange.Address Do' Unión de todos los rangos cuyo valor coincida con FindItem Set FindRange = Union (FindRange, MatchingRange) 'Finding el siguiente rango cuyo valor coincide con FindItem Set MatchingRange = .FindNext (MatchingRange) Loop While MatchingRange.Address FirstAddress End If End With End Función Sub HighlightMatchingResult () 'Declarando variables Dim MappingRange As Range Dim UserInput As String' Obteniendo el valor ingresado por el usuario de celda I8 UserInput = Range ("I8"). Value 'Llamando a la función personalizada FindRange Set MappingRange = FindRange (UserInput, ActiveSheet.C olumns ("A")) 'Resaltando el rango mapeado con color amarillo MappingRange.Interior.Color = RGB (255, 255, 0) End Sub 

Si te gustó este blog, compártelo con tus amigos en Facebook. Además, puede seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico