ВБА - Проверите да ли постоји вредност у низу

ВБА - Проверите да ли постоји вредност у низу

Увод

Да бисмо проверили да ли постоји вредност у низу, можемо прећи преко њених елемената. Међутим, постоји још једно решење! Можете користити функцију ИНДЕКС (), која је изворна за Екцел, ау случају дводимензионалних поља користити комбинацију функције ИНДЕКС / МАТЦХ . Међутим, ако вредност није пронађена, Апплицатион.Матцх враћа грешку. Морат ћете узети у обзир све могуће грешке, као и број димензија варијабле низа.

Ова мала функција ће вам помоћи!

Коришћење функције Матцх

 Функциа ЕстДанс (мот Ас Стринг, Табл) Ас Боолеан

Дим димензија Као бајт, ј као Интегер

Он Еррор Ресуме Нект

Иф ИсЕррор (УБоунд (Табл, 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 секунди

Линк за скидање

  • Можете преузети узорак радне свеске: //цјоинт.цом/?ДХфпекМБвРК
Претходни Чланак Sledeći Чланак

Топ Савети