Что сравнивает результаты работы диапазонов

Я пытаюсь кодировать UDF, который ищет в заданном тексте для целей, заданных в массиве.

Чтобы сделать все просто, я попытался использовать функции application.find такие как application.find и application.match и application.iferror и т. Д.

Я придерживался этой части кода:

 Function SEARCHARRAY(find_items As Range, within_text As Range) As Variant Dim search_result As Variant search_result = Application.IfError(Application.Find(find_items, within_text), 0) //this should return in application sothing like {0;0;9}, that represent range of items, 0 relate to items not found and 9 i "item found on the 9th position" as regular Find() would return 

`application.find возвращает массив, который на рабочем листе выглядит как {0,0,9}, который представляет диапазон элементов, где 0s относятся к элементам, которые не найдены, а 9 -« элемент, найденный на 9-й позиции », как обычный Find ( ) вернется

Позже в коде мне нужно выяснить, сколько совпадающих элементов в этом массиве {#, #, #}.

Но если я использую search_result(i) он ничего не возвращает.

Как я могу выполнить итерацию через search_result ?

Пока моя функция работает только при совпадении только одного элемента, это довольно плохо.

Полный код выглядит следующим образом:

 Function SEARCHARRAY(find_items As Range, within_text As Range) As Variant Dim search_result, position As Variant search_result = Application.IfError(Application.Find(find_items, within_text), 0) If (Application.Sum(search_result) = 0) Then matched_item = "no match" Else position = Application.Match(Application.Sum(search_result), search_result, 0) matched_item = Application.Index(find_items, position) End If SEARCHARRAY = matched_item End Function 

Но если я использую search_result (i), он ничего не возвращает. Как я могу выполнить итерацию через search_result?

search_result – это 2D-массив. Чтобы пройти через него, вы можете найти верхнюю границу, используя

 ?UBound(search_result) 

А потом просто прокрутите его

 For i = LBound(search_result) To UBound(search_result) Debug.Print search_result(i, 1) Next i 
  • Excel: как получить адрес ячейки ссылки hlookup?
  • Функция поиска в нескольких листах данных
  • Поиск по нескольким критериям Excel со ссылкой на собственную строку
  • Получите минимальное значение после HLOOKUP
  • Рекурсивно искать файлы для информации, содержащейся в ячейке excel и обратном пути
  • Суммапроизведение в сочетании с If (IsNumber (Поиск
  • Функции Excel - IF и ПОИСК
  • Поиск в Excel с несколькими выводами в одной строке
  • Возвращает номер строки, соответствующий нескольким критериям в vbs excel
  • MS Excel: «MATCH ()» не находит ячейки, содержащие текст, если массив поиска слишком велик
  • Значения поиска с использованием нескольких критериев и по заказу
  • Давайте будем гением компьютера.