În acest articol, vom folosi metoda find a obiectului Range pentru a evidenția celula care conține valoarea similară cuvintelor de căutare.
Datele brute pentru acest exemplu constau în numele companiei, ID-ul angajatului și numele angajatului. Avem date brute de la diferite companii.
În acest exemplu, dorim să găsim și să evidențiem celula care se potrivește cu un anumit nume de companie definit în celula I8.
Pentru a evidenția celulele cu anumite nume de companie, introduceți numele companiei în celula I8 și faceți clic pe butonul „Trimiteți”. Butonului „Trimiteți” i se atribuie macrocomanda „HighlightMatchingResult”.
Macro-ul „HighlightMatchingResult” va evidenția celula care conține numele companiei potrivite cu culoarea Galben.
Explicație logică
În acest exemplu, am creat o funcție personalizată „FindRange” și o macro „HighlightMatchingResult”.
Funcția personalizată „FindRange” va crea un interval cu toate celulele care conțin o valoare similară cu numele companiei căutate.
Macro-ul „HighlightMatchingResult” va apela funcția personalizată și va evidenția intervalul returnat de funcția personalizată în culoare Galben.
Explicarea codului
SearchRange.Find (What: = FindItem)
Codul de mai sus este utilizat pentru a găsi celula care conține o valoare similară cu FindItem.
Uniune (FindRange, MatchingRange)
Codul de mai sus este utilizat pentru a combina două game într-un singur interval.
SearchRange.FindNext (MatchingRange)
Codul de mai sus este utilizat pentru a găsi următoarea celulă care conține o valoare similară cu FindItem.
Vă rugăm să urmați codul de mai jos
Opțiune Funcție explicită FindRange (FindItem as Variant, SearchRange as Range) As Range 'Declaring variables Dim MatchingRange As Range Dim FirstAddress As String With SearchRange' Găsirea intervalului a cărui valoare se potrivește cu FindItem Set MatchingRange = .Găsiți (Ce: = FindItem) 'Verificare dacă există o potrivire Dacă nu este MatchingRange is Nothing, apoi Set FindRange = MatchingRange 'Obținerea adresei primului interval de potrivire FirstAddress = MatchingRange.Address Do' Unirea tuturor intervalelor a căror valoare se potrivește cu FindItem Set FindRange = Union (FindRange, MatchingRange) 'Finding următorul interval a cărui valoare se potrivește cu FindItem Set MatchingRange = .FindNext (MatchingRange) Buclă în timp ce MatchingRange.Adrress FirstAddress End If End With End Function Sub HighlightMatchingResult () 'Declaring variables Dim MappingRange As Range Dim UserInput As String' Obținerea valorii introduse de utilizator de la celula I8 UserInput = Range ("I8"). Valoare 'Apelare funcție personalizată FindRange Set MappingRange = FindRange (UserInput, ActiveSheet.C olumns ("A")) 'Evidențierea gamei mapate cu culoare galbenă MappingRange.Interior.Color = RGB (255, 255, 0) End Sub
Dacă ți-a plăcut acest blog, distribuie-l prietenilor tăi de pe Facebook. De asemenea, ne puteți urmări pe Twitter și Facebook.
Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți munca noastră și o putem îmbunătăți. Scrieți-ne pe site-ul de e-mail