Selles artiklis kasutame vahemiku objekti leidmismeetodit, et esile tõsta lahtrit, mis sisaldab otsingusõnadega sarnast väärtust.
Selle näite toorandmed koosnevad ettevõtte nimest, töötaja ID -st ja töötaja nimest. Meil on algandmeid erinevatelt ettevõtetelt.
Selles näites tahame leida ja esile tõsta lahtri I8 lahtri, mis sobib kindla ettevõtte nimega.
Konkreetse ettevõtte nimega lahtrite esiletõstmiseks sisestage ettevõtte nimi lahtrisse I8 ja klõpsake nuppu „Esita“. Nupule „Esita” on määratud makro „HighlightMatchingResult”.
Makro „HighlightMatchingResult” tõstab esile lahtri, mis sisaldab sobivat ettevõtte nime kollase värviga.
Loogiline seletus
Selles näites oleme loonud kohandatud funktsiooni „FindRange” ja makro „HighlightMatchingResult”.
Kohandatud funktsioon „FindRange” loob vahemiku kõigi lahtritega, mis sisaldavad otsitava ettevõtte nimega sarnast väärtust.
Makro „HighlightMatchingResult” kutsub kohandatud funktsiooni ja tõstab kollase värviga esile kohandatud funktsiooni tagastatava vahemiku.
Koodi selgitus
SearchRange.Find (Mis: = FindItem)
Ülaltoodud koodi kasutatakse lahtri leidmiseks, mis sisaldab FindItemiga sarnast väärtust.
Liit (FindRange, MatchingRange)
Ülaltoodud koodi kasutatakse kahe vahemiku ühendamiseks üheks vahemikuks.
SearchRange.FindNext (MatchingRange)
Ülaltoodud koodi kasutatakse järgmise lahtri leidmiseks, mis sisaldab FindItemiga sarnast väärtust.
Palun järgige koodi allpool
Valik Selgesõnaline funktsioon FindRange (FindItem Variant, SearchRange As Range) Vahemikuna 'Muutujate deklareerimine Dim MatchingRange As Range Dim FirstAddress stringina SearchRange'iga' Vahemiku leidmine, mille väärtus vastab FindItem Set MatchingRange = .Find (What: = FindItem) 'Kontrollimine kas mõni vaste on olemas Kui mitte MatchingRange pole midagi, siis määrake FindRange = MatchingRange 'Esimese vastevahemiku aadressi hankimine FirstAddress = MatchingRange.Address Do' Liidake kõik vahemikud, mille väärtus kattub FindItem Setiga FindRange = Union (FindRange, MatchingRange) 'Finding järgmine vahemik, mille väärtus vastab FindItem Set MatchingRange = .FindNext (MatchingRange) Loop MatchingRange ajal. Aadress FirstAddress End If End End with End Function Sub HighlightMatchingResult () 'Muutujate deklareerimine Dim MappingRange As Range Dim UserInput As String' Väärtuse sisestamine kasutaja poolt lahter I8 UserInput = Vahemik ("I8"). Väärtus 'FindRange'i kohandatud funktsiooni helistamine Määrake MappingRange = FindRange (UserInput, ActiveSheet.C olumns ("A")) 'Kaardistatud vahemiku esiletõstmine kollase värviga MappingRange.Interior.Color = RGB (255, 255, 0) End Sub
Kui teile see blogi meeldis, jagage seda oma sõpradega Facebookis. Lisaks saate meid jälgida Twitteris ja Facebookis.
Tahaksime sinust kuulda, andke meile teada, kuidas saaksime oma tööd paremaks muuta ja teie jaoks paremaks muuta. Kirjuta meile meilisaidile