Najděte metodu objektu Range

Anonim

V tomto článku použijeme metodu find objektu Range pro zvýraznění buňky, která obsahuje hodnotu podobnou hledaným slovům.

Nezpracovaná data pro tento příklad se skládají z názvu společnosti, ID zaměstnance a jména zaměstnance. Máme nezpracovaná data od různých společností.

V tomto příkladu chceme najít a zvýraznit buňku, která odpovídá konkrétnímu definovanému názvu společnosti v buňce I8.

Chcete -li zvýraznit buňky s konkrétními názvy společností, zadejte název společnosti do buňky I8 a klikněte na tlačítko „Odeslat“. Tlačítko „Odeslat“ je přiřazeno makru „HighlightMatchingResult“.

Makro „HighlightMatchingResult“ zvýrazní buňku, která obsahuje odpovídající název společnosti, žlutou barvou.

Logické vysvětlení

V tomto příkladu jsme vytvořili vlastní funkci „FindRange“ a makro „HighlightMatchingResult“.

Vlastní funkce „FindRange“ vytvoří rozsah se všemi buňkami, které obsahují hodnotu podobnou hledanému názvu společnosti.

Makro „HighlightMatchingResult“ zavolá vlastní funkci a zvýrazní rozsah vrácený vlastní funkcí žlutou barvou.

Vysvětlení kódu

SearchRange.Find (What: = FindItem)

Výše uvedený kód se používá k nalezení buňky, která obsahuje hodnotu podobnou FindItem.

Union (FindRange, MatchingRange)

Výše uvedený kód slouží ke kombinaci dvou rozsahů do jednoho rozsahu.

SearchRange.FindNext (MatchingRange)

Výše uvedený kód se používá k nalezení další buňky, která obsahuje hodnotu podobnou FindItem.

Pro kód prosím postupujte níže

 Možnost Explicitní funkce FindRange (FindItem As Variant, SearchRange As Range) As Range 'Declaring variables Dim MatchingRange As Range Dim FirstAddress As String With SearchRange' Finding the range which value match with FindItem Set MatchingRange = .Find (What: = FindItem) 'Checking zda nějaká shoda existuje Pokud Not MatchingRange Is Nothing Then Set FindRange = MatchingRange 'Získávání adresy prvního rozsahu shody FirstAddress = MatchingRange.Address Do' Sjednocení všech rozsahů, jejichž hodnota odpovídá FindItem Set FindRange = Union (FindRange, MatchingRange) 'Finding další rozsah, jehož hodnota odpovídá FindItem Set MatchingRange = .FindNext (MatchingRange) Loop While MatchingRange.Address FirstAddress End If End With End Funkce Sub HighlightMatchingResult () 'Declaring variables Dim MappingRange As Range Dim UserInput As String' Získávání hodnoty vstupu uživatelem z buňka I8 UserInput = Rozsah ("I8"). Hodnota 'Volání vlastní funkce FindRange Nastavit MappingRange = FindRange (UserInput, ActiveSheet.C olumns ("A")) 'Zvýraznění mapovaného rozsahu pomocí žluté barvy MappingRange.Interior.Color = RGB (255, 255, 0) End Sub 

Pokud se vám tento blog líbil, sdílejte ho se svými přáteli na Facebooku. Také nás můžete sledovat na Twitteru a Facebooku.

Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit naši práci a zlepšit ji pro vás. Napište nám na e -mail