ВБА - Проверите да ли постоји вредност у низу
ВБА - Проверите да ли постоји вредност у низу
Увод
Да бисмо проверили да ли постоји вредност у низу, можемо прећи преко њених елемената. Међутим, постоји још једно решење! Можете користити функцију ИНДЕКС (), која је изворна за Екцел, ау случају дводимензионалних поља користити комбинацију функције ИНДЕКС / МАТЦХ . Међутим, ако вредност није пронађена, Апплицатион.Матцх враћа грешку. Морат ћете узети у обзир све могуће грешке, као и број димензија варијабле низа.Ова мала функција ће вам помоћи!
Коришћење функције Матцх
Функциа ЕстДанс (мот Ас Стринг, Табл) Ас БоолеанДим димензија Као бајт, ј као Интегер
Он Еррор Ресуме Нект
Иф ИсЕррор (УБоунд (Табл, 2)) Затем Дименсион = 1 Елсе Дименсион = 2
Он Еррор ГоТо 0
Одаберите Димензије кућишта
Случај 1
Он Еррор Ресуме Нект
ЕстДанс = Апплицатион.Матцх (мот, Табл, 0)
Он Еррор ГоТо 0
Случај 2
За ј = 1 до УБоунд (Табл, 2)
Он Еррор Ресуме Нект
ЕстДанс = Апплицатион.Матцх (мот, Апплицатион.Индек (Табл,, ј), 0)
Он Еррор ГоТо 0
Ако је ЕстДанс = Труе Онда Екит Фор
Следећи
Енд Селецт
Енд Фунцтион
Позивање функције
Суб тест ()Дим Тб (), и Ас Интегер
тб 2 димензије:
Тб = Распон ("А2: Ц16")
Дебуг.Принт ЕстДанс (МаВалеур, Тб)
Ерасе Тб
'тб 1 димензија:
РеДим Пресерве Тб (15)
За и = 0 до 14
Тб (и) = Ћелије (и + 2, 1)
Следећи
Дебуг.Принт ЕстДанс (МаВалеур, Тб)
Енд Суб
Користећи петљу
Структура ове функције је слична оној у којој се користи Матцх .Функција БоуцлеСурТабл (мот Ас Стринг, Тб)Дим Дименсион Ас Бите, и Лонг, ј Ас Лонг
Он Еррор Ресуме Нект
Иф ИсЕррор (УБоунд (Тб, 2)) Затем Дименсион = 1 Елсе Дименсион = 2
Он Еррор ГоТо 0
Одаберите Димензије кућишта
Случај 1
За ј = ЛБоунд (Тб) до УБоунд (Тб)
Ако је Тб (ј) = мот онда БоуцлеСурТабл = Труе: Екит Фунцтион
Следећи
Случај 2
За и = ЛБоунд (Тб, 1) до УБоунд (Тб, 1)
За ј = ЛБоунд (Тб, 2) За УБоунд (Тб, 2)
Ако је Тб (и, ј) = мот онда БоуцлеСурТабл = Труе: Екит Фунцтион
Нект ј
Затим сам
Енд Селецт
Енд Фунцтион
Опажања
Упркос свим изгледима, добићете бољи резултат са функцијом петље на великим низовима него помоћу Апплицатион.Матцх.Тестирање дводимензионалног низа са следећим опсегом ("А1: И20002").
- Коришћење функције Матцх: 8.300781 секунди.
- Користећи петљу: 0.4375 секунди.
Тестирање једнодимензионалног низа:
- Коришћење функције Матцх: инстант
- Користећи петљу: 0.015625 секунди
Линк за скидање
- Можете преузети узорак радне свеске: //цјоинт.цом/?ДХфпекМБвРК