Hitta metod för Range -objekt

Anonim

I den här artikeln kommer vi att använda sökmetoden för Range -objekt för att markera cellen som innehåller värdet som liknar sökord.

Rådata för detta exempel består av företagsnamn, anställdas id och anställdas namn. Vi har rådata från olika företag.

I det här exemplet vill vi hitta och markera cellen som matchar ett särskilt definierat företagsnamn i cell I8.

För att markera cellerna med specifika företagsnamn anger du företagsnamnet i cell I8 och klickar på knappen "Skicka". Knappen "Skicka" tilldelas makroet "HighlightMatchingResult".

Makroet "HighlightMatchingResult" markerar cellen som innehåller matchande företagsnamn med gul färg.

Logisk förklaring

I det här exemplet har vi skapat en anpassad funktion "FindRange" och ett makro "HighlightMatchingResult".

Anpassad funktion "FindRange" skapar ett intervall med alla celler som innehåller värde som liknar det sökte företagsnamnet.

Makroet "HighlightMatchingResult" kommer att anropa den anpassade funktionen och markera intervallet som returneras av den anpassade funktionen i gul färg.

Kodförklaring

SearchRange.Find (What: = FindItem)

Ovanstående kod används för att hitta cellen som innehåller ett värde som liknar FindItem.

Union (FindRange, MatchingRange)

Ovanstående kod används för att kombinera två intervall till ett enda intervall.

SearchRange.FindNext (MatchingRange)

Ovanstående kod används för att hitta nästa cell som innehåller ett värde som liknar FindItem.

Följ koden nedan

 Alternativ Explicit Function FindRange (FindItem As Variant, SearchRange As Range) As Range 'Declaring variables Dim MatchingRange As Range Dim FirstAddress As String With SearchRange' Hitta det område vars värde matchar med FindItem Set MatchingRange = .Find (What: = FindItem) 'Checking om det finns någon matchning Om Not MatchingRange är ingenting Ange FindRange = MatchingRange 'Hämtar adressen till det första matchningsområdet FirstAddress = MatchingRange.Address Do' Union av alla områden vars värde matchar med FindItem Set FindRange = Union (FindRange, MatchingRange) 'Finding nästa intervall vars värde matchar 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' Skaffa värdeinmatning av användare från cell I8 UserInput = Range ("I8"). Value 'Calling FindRange custom function Set MappingRange = FindRange (UserInput, ActiveSheet.C olumns ("A")) 'Markerar det mappade området med gul färg MappingRange.Interior.Color = RGB (255, 255, 0) End Sub 

Om du gillade den här bloggen, dela den med dina vänner på Facebook. Du kan också följa oss på Twitter och Facebook.

Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen