V tomto článku použijeme metódu find objektu Range na zvýraznenie bunky, ktorá obsahuje hodnotu podobnú hľadaným slovám.
Pôvodné údaje pre tento príklad pozostávajú z názvu spoločnosti, ID zamestnanca a mena zamestnanca. Máme prvotné údaje od rôznych spoločností.
V tomto prípade chceme nájsť a zvýrazniť bunku, ktorá sa zhoduje s konkrétnym definovaným názvom spoločnosti v bunke 18.
Ak chcete zvýrazniť bunky s konkrétnymi názvami spoločností, zadajte názov spoločnosti do bunky I8 a kliknite na tlačidlo „Odoslať“. Tlačidlu „Odoslať“ je priradené makro „HighlightMatchingResult“.
Makro „HighlightMatchingResult“ zvýrazní bunku obsahujúcu zodpovedajúci názov spoločnosti žltou farbou.
Logické vysvetlenie
V tomto prípade sme vytvorili vlastnú funkciu „FindRange“ a makro „HighlightMatchingResult“.
Vlastná funkcia „FindRange“ vytvorí rozsah so všetkými bunkami, ktoré obsahujú hodnotu podobnú názvu vyhľadávanej spoločnosti.
Makro „HighlightMatchingResult“ zavolá vlastnú funkciu a žltou farbou zvýrazní rozsah vrátený vlastnou funkciou.
Vysvetlenie kódu
SearchRange.Find (What: = FindItem)
Vyššie uvedený kód sa používa na nájdenie bunky, ktorá obsahuje hodnoty podobné FindItem.
Union (FindRange, MatchingRange)
Vyššie uvedený kód sa používa na kombináciu dvoch rozsahov do jedného rozsahu.
SearchRange.FindNext (MatchingRange)
Vyššie uvedený kód sa používa na nájdenie ďalšej bunky, ktorá obsahuje hodnoty podobné FindItem.
Pri kódovaní postupujte podľa nižšie uvedených pokynov
Možnosť Explicitná funkcia FindRange (FindItem As Variant, SearchRange As Range) As Range 'Deklarujúce premenné Dim MatchingRange As Range Dim FirstAddress As String With SearchRange' Finding the range which value match with FindItem Set MatchingRange = .Find (What: = FindItem) 'Checking či existuje zhoda Ak nie je MatchingRange nič, potom nastavte FindRange = MatchingRange 'Získanie adresy prvého rozsahu zhody FirstAddress = MatchingRange.Address Do' Únia všetkých rozsahov, ktorých hodnota sa zhoduje s FindItem Nastaviť FindRange = Union (FindRange, MatchingRange) 'Hľadanie ďalší rozsah, ktorého hodnota sa zhoduje s 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' Získanie hodnoty vstupu používateľom z bunka I8 UserInput = Rozsah ("I8"). Hodnota 'Volanie vlastnej funkcie FindRange Nastaviť MappingRange = FindRange (UserInput, ActiveSheet.C olumns ("A")) 'Zvýraznenie mapovaného rozsahu pomocou žltej farby MappingRange.Interior.Color = RGB (255, 255, 0) End Sub
Ak sa vám tento blog páčil, zdieľajte ho so svojimi priateľmi na Facebooku. Môžete nás tiež sledovať na Twitteri a Facebooku.
Budeme radi, ak sa nám ozvete, dajte nám vedieť, ako môžeme zlepšiť našu prácu a zlepšiť ju pre vás. Napíšte nám na emailovú stránku