При использовании макросов в Excel для оптимизации, порой не обойтись без использования массивов.
Массив VBA — это тип переменной, который используется для хранения списков данных. Примером может быть сохранение списка стран или списка названий предоставляемых услуг. Могут возникать ситуации, когда нужно найти номер элемента в массиве, зная его значение, для дальнейшей обработки.
Для решения такой задачи предлагаю использовать следующую функцию:
Function FindIndex(arr,val)
Dim r As Long
For r = 1 To UBound(arr,1)
If Not IsError(Application.Match(val, Application.Index(arr, r, 0), 0)) Then
FindIndex = Application.Match(val, Application.Index(arr, r, 0), 0)
Exit Function
End If
Next r
End Function