Намерете метода на Range обект

Anonim

В тази статия ще използваме метода find на Range обект, за да подчертаем клетката, която съдържа стойността, подобна на думите за търсене.

Суровите данни за този пример се състоят от име на фирма, идентификационен номер на служител и име на служител. Имаме необработени данни от различни компании.

В този пример искаме да намерим и подчертаем клетката, която съответства на определено име на фирма в клетка I8.

За да маркирате клетките с конкретни имена на фирми, въведете името на компанията в клетка I8 и кликнете върху бутона „Изпращане“. На бутона „Изпращане“ е присвоен макрос „HighlightMatchingResult“.

Макросът „HighlightMatchingResult“ ще подчертае клетката, която съдържа съвпадащото име на фирма с жълт цвят.

Логично обяснение

В този пример създадохме персонализирана функция „FindRange“ и макрос „HighlightMatchingResult“.

Персонализираната функция „FindRange“ ще създаде диапазон с всички клетки, които съдържат стойност, подобна на търсеното име на фирма.

Макросът „HighlightMatchingResult“ ще извика персонализираната функция и ще подчертае диапазона, върнат от персонализираната функция в жълт цвят.

Обяснение на кода

SearchRange.Find (Какво: = FindItem)

Горният код се използва за намиране на клетката, която съдържа стойност, подобна на FindItem.

Съюз (FindRange, MatchingRange)

Горният код се използва за комбиниране на два диапазона в един диапазон.

SearchRange.FindNext (MatchingRange)

Горният код се използва за намиране на следващата клетка, която съдържа стойност, подобна на FindItem.

Моля, следвайте кода по -долу

 Опция Изрична функция FindRange (FindItem като вариант, SearchRange като диапазон) като диапазон „Деклариране на променливи Dim MatchingRange като диапазон Dim FirstAddress As String With SearchRange„ Намиране на диапазона, чиято стойност съвпада с FindItem Set MatchingRange = .Find (What: = FindItem) “Проверка дали има съвпадение, ако не MatchingRange е нищо, тогава задайте FindRange = MatchingRange 'Получаване на адреса на първия съвпадащ диапазон FirstAddress = MatchingRange.Address Do' Съюз на всички диапазони, чиято стойност съвпада с FindItem Set FindRange = Union (FindRange, MatchingRange) 'Намиране следващият диапазон, чиято стойност съвпада с FindItem Set MatchingRange = .FindNext (MatchingRange) Loop While MatchingRange.Address FirstAddress End If End With End Функция Sub HighlightMatchingResult () 'Деклариране на променливи Dim MappingRange като Range Dim UserInput As String' Получаване на стойност от потребителя клетка I8 UserInput = Обхват ("I8"). Стойност 'Извикване на персонализирана функция FindRange Задайте MappingRange = FindRange (UserInput, ActiveSheet.C olumns ("A")) 'Маркиране на картографирания диапазон с жълт цвят MappingRange.Interior.Color = RGB (255, 255, 0) End Sub 

Ако този блог ви е харесал, споделете го с приятелите си във Facebook. Също така можете да ни следвате в Twitter и Facebook.

Ще се радваме да чуем от вас, уведомете ни как можем да подобрим работата си и да я направим по -добра за вас. Пишете ни на имейл сайта