В тази статия ще създадем персонализирана функция за намиране на уникални стойности от определения диапазон.
Суровите данни за този пример се състоят от дублирани записи на име на държава в диапазона A8: A21.
Логично обяснение
Създадохме персонализирана функция „UniqueItem“, за да извлечем уникалните стойности от диапазона. Тази функция приема два параметъра като вход. Първият параметър е диапазонът, който се състои от дублиращи се данни, а вторият параметър определя индексния номер на уникална стойност в уникалната колекция.
Тази функция връща уникалната стойност от диапазона въз основа на номера на индекса. Вторият параметър е незадължителен, ако вторият параметър не е посочен, тогава функцията връща броя на уникалната стойност в определения диапазон.
Ако стойността, определена за втория параметър, е по -голяма от броя на уникалните стойности в диапазона, последната уникална стойност се връща от функцията.
Обяснение на кода
На грешка възобновяване на следващо
За всяка CellValue в InputRange
CUnique.Add CellValue.Value, CStr (CellValue.Value)
Следващия
При грешка GoTo 0
Горният код се използва за създаване на обект на колекция, който ще съдържа уникална стойност от определения диапазон. Инструкциите „On Error“ се използват за обработка на грешки, тъй като когато кодът се опитва да постави дублирани стойности в колекцията, колекцията ще генерира грешка.
Моля, следвайте кода по -долу
Опция Изрична функция UniqueItem (InputRange As Range, Optional ItemNo As Integer = 0) As Variant Dim CellValue As Range Dim CUnique As New Collection Dim UCount As Integer On Error Resume Next 'Добавяне на уникални елементи към колекция от дефиниран диапазон За всяка CellValue в InputRange CUnique .Add CellValue.Value, CStr (CellValue.Value) Next On Error GoTo 0 'Получаване на брой уникални елементи в колекцията UCount = CUnique.Count If ItemNo = 0 Then' Връщащ брой уникални елементи UniqueItem = UCount ElseIf ItemNo <= UCount След това „Връщане на уникална стойност въз основа на номер на елемент UniqueItem = CUnique (ItemNo) Else“ Връщане на последната уникална стойност UniqueItem = CUnique (UCount) End If End Function
Ако този блог ви е харесал, споделете го с приятелите си във Facebook. Също така можете да ни следвате в Twitter и Facebook.
Ще се радваме да чуем от вас, уведомете ни как можем да подобрим работата си и да я направим по -добра за вас. Пишете ни на имейл сайта