Etsi Range -objektin menetelmä

Anonim

Tässä artikkelissa käytämme Range -objektin Find -menetelmää korostamaan solu, joka sisältää hakusanojen kaltaisen arvon.

Tämän esimerkin raakatiedot koostuvat yrityksen nimestä, työntekijän tunnuksesta ja työntekijän nimestä. Meillä on raakatietoja eri yrityksiltä.

Tässä esimerkissä haluamme löytää ja korostaa solun, joka vastaa tiettyä määriteltyä yrityksen nimeä solussa I8.

Jos haluat korostaa solut tietyillä yrityksen nimillä, kirjoita yrityksen nimi soluun I8 ja napsauta Lähetä -painiketta. "Lähetä" -painikkeelle on määritetty "HighlightMatchingResult" -makro.

"HighlightMatchingResult" -makro korostaa solun, joka sisältää vastaavan yrityksen nimen keltaisella värillä.

Looginen selitys

Tässä esimerkissä olemme luoneet mukautetun toiminnon "FindRange" ja makron "HighlightMatchingResult".

Mukautettu toiminto "FindRange" luo alueen, jossa on kaikki solut, jotka sisältävät haetun yrityksen nimen kaltaista arvoa.

"HighlightMatchingResult" -makro kutsuu mukautetun toiminnon ja korostaa mukautetun toiminnon palauttaman alueen keltaisella värillä.

Koodin selitys

SearchRange.Find (What: = FindItem)

Yllä olevaa koodia käytetään löytämään solu, joka sisältää FindItemin kaltaisen arvon.

Unioni (FindRange, MatchingRange)

Yllä olevaa koodia käytetään kahden alueen yhdistämiseen yhdeksi alueeksi.

SearchRange.FindNext (MatchingRange)

Yllä olevaa koodia käytetään seuraavan solun löytämiseen, joka sisältää FindItemin kaltaisen arvon.

Seuraa koodia alla

 Vaihtoehto Selkeä toiminto FindRange (FindItem as Variant, SearchRange as Range) As Range 'Declaring muuttujat Dim MatchingRange As Range Dim FirstAddress as String With SearchRange' Finding the range which value match with FindItem Set MatchingRange = .Find (What: = FindItem) 'Check onko mitään vastaavuutta olemassa Jos MatchingRange ei ole mitään Määritä FindRange = MatchingRange 'Ensimmäisen vastaavuusalueen osoitteen hakeminen FirstAddress = MatchingRange.Address Do' Union of all of the range that value value with FindItem Set FindRange = Union (FindRange, MatchingRange) 'Finding seuraava alue, jonka arvo vastaa FindItem Set MatchingRange = .FindNext (MatchingRange) -silmukka MatchingRange.Address FirstAddress End If End End with End Function Sub HighlightMatchingResult () 'Declaring muuttujat Dim MappingRange As Range Dim UserInput As String' Arvon syöttäminen käyttäjältä solu I8 UserInput = Range ("I8"). Arvo "FindRange -mukautetun toiminnon kutsuminen Aseta MappingRange = FindRange (UserInput, ActiveSheet.C olumns ("A")) 'Kartoitetun alueen korostaminen keltaisella värillä MappingRange.Interior.Color = RGB (255, 255, 0) End Sub 

Jos pidit tästä blogista, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.

Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse