Finn metode for Range -objekt

Anonim

I denne artikkelen vil vi bruke finne metoden for Range -objekt for å markere cellen som inneholder verdien som ligner på søkeord.

Rådata for dette eksemplet består av firmanavn, ansatt -ID og ansattnavn. Vi har rådata fra forskjellige selskaper.

I dette eksemplet ønsker vi å finne og markere cellen som samsvarer med et bestemt definert firmanavn i celle I8.

For å markere cellene med bestemte firmanavn, skriv inn firmanavnet i celle I8 og klikk på "Send" -knappen. "Send" -knappen er tildelt makro "HighlightMatchingResult".

Makroen “HighlightMatchingResult” vil markere cellen som inneholder det matchende firmanavnet med gul farge.

Logisk forklaring

I dette eksemplet har vi opprettet en egendefinert funksjon "FindRange" og en makro "HighlightMatchingResult".

Tilpasset funksjon "FindRange" vil opprette et område med alle cellene som inneholder verdi som ligner på det søkte firmanavnet.

Makroen "HighlightMatchingResult" vil kalle den egendefinerte funksjonen og markere området som den egendefinerte funksjonen returnerer i gul farge.

Kode forklaring

SearchRange.Find (What: = FindItem)

Koden ovenfor brukes til å finne cellen som inneholder verdi som ligner på FindItem.

Union (FindRange, MatchingRange)

Koden ovenfor brukes til å kombinere to områder til et enkelt område.

SearchRange.FindNext (MatchingRange)

Koden ovenfor brukes til å finne den neste cellen som inneholder verdi som ligner på FindItem.

Følg koden nedenfor

 Alternativ Eksplisitt Funksjon FindRange (FindItem Som Variant, SearchRange As Range) Som Range 'Deklarerende variabler Dim MatchingRange As Range Dim FirstAddress As String With SearchRange' Finne området hvis verdi samsvarer med FindItem Set MatchingRange = .Finn (Hva: = FindItem) 'Kontrollerer om det finnes noen match Hvis ikke MatchingRange er ingenting, sett deretter FindRange = MatchingRange 'Få adressen til det første matchende området FirstAddress = MatchingRange.Address Do' Forening av alle områdene hvis verdi samsvarer med FindItem Set FindRange = Union (FindRange, MatchingRange) 'Finding neste område hvis verdi samsvarer med FindItem Set MatchingRange = .FindNext (MatchingRange) Loop While MatchingRange.Address FirstAddress End If End With End Function Sub HighlightMatchingResult () 'Declaring variables Dim MappingRange As Range Dim UserInput As String' Få verdi inndata fra bruker fra cell I8 UserInput = Range ("I8"). Value 'Calling FindRange custom function Set MappingRange = FindRange (UserInput, ActiveSheet.C olumns ("A")) 'Fremhever det kartlagte området med gul farge MappingRange.Interior.Color = RGB (255, 255, 0) End Sub 

Hvis du likte denne bloggen, del den med vennene dine på Facebook. Du kan også følge oss på Twitter og Facebook.

Vi vil gjerne høre fra deg, gi oss beskjed om hvordan vi kan forbedre arbeidet vårt og gjøre det bedre for deg. Skriv til oss på e -post