Find metode til områdeobjekt

Anonim

I denne artikel vil vi bruge find -metode til Range -objekt til at markere cellen, der indeholder værdien, der ligner søgeord.

Rådata for dette eksempel består af firmanavn, medarbejder -id og medarbejdernavn. Vi har rådata fra forskellige virksomheder.

I dette eksempel vil vi finde og fremhæve cellen, der matcher med et bestemt defineret firmanavn i celle I8.

For at markere cellerne med bestemte firmanavne skal du indtaste firmanavnet i celle I8 og klikke på knappen "Send". Knappen "Send" er tildelt makro "HighlightMatchingResult".

Makroen "HighlightMatchingResult" fremhæver cellen, der indeholder det matchende firmanavn med gul farve.

Logisk forklaring

I dette eksempel har vi oprettet en brugerdefineret funktion "FindRange" og en makro "HighlightMatchingResult".

Tilpasset funktion "FindRange" opretter et område med alle de celler, der indeholder værdi, der ligner det søgte virksomhedsnavn.

Makroen "HighlightMatchingResult" kalder den brugerdefinerede funktion og fremhæver det område, der returneres af den tilpassede funktion i gul farve.

Kode forklaring

SearchRange.Find (Hvad: = FindItem)

Ovenstående kode bruges til at finde cellen, der indeholder værdi svarende til FindItem.

Union (FindRange, MatchingRange)

Ovenstående kode bruges til at kombinere to områder til et enkelt område.

SearchRange.FindNext (MatchingRange)

Ovenstående kode bruges til at finde den næste celle, der indeholder værdi svarende til FindItem.

Følg venligst nedenstående for koden

 Option Eksplicit funktion FindRange (FindItem som variant, SearchRange som område) Som Range 'Deklarerende variabler Dim MatchingRange As Range Dim FirstAdrress As String With SearchRange' Find det område, hvis værdi matcher med FindItem Set MatchingRange = .Find (Hvad: = FindItem) 'Kontrol om der findes en match Hvis ikke MatchingRange er noget, så indstil FindRange = MatchingRange 'Hentning af adressen på første matchende område FirstAddress = MatchingRange.Address Do' Forening af alle de områder, hvis værdi matcher med FindItem Set FindRange = Union (FindRange, MatchingRange) 'Finding det næste område, hvis værdi matcher 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' Hent værdi input fra bruger fra cell I8 UserInput = Range ("I8"). Value 'Calling FindRange custom function Set MappingRange = FindRange (UserInput, ActiveSheet.C olumns ("A")) 'Fremhævning af det kortlagte område med gul farve MappingRange.Interior.Color = RGB (255, 255, 0) End Sub 

Hvis du kunne lide denne blog, kan du dele den med dine venner på Facebook. Du kan også følge os på Twitter og Facebook.

Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet