Если вы находитесь в Excel, вы можете использовать HLOOKUP (или VLOOKUP)
Sub QueryArray()
Dim arr(1 To 3, 1 To 3) As Variant
arr(1, 1) = "Dog"
arr(1, 2) = "Cat"
arr(1, 3) = "Bird"
arr(2, 1) = 1
arr(2, 2) = 7
arr(2, 3) = 10
Debug.Print Application.WorksheetFunction.HLookup("Cat", arr, 2, False)
End Sub
Если вы не в Excel, вы можете установить ссылку на Excel.Не стоит сбрасывать со счетов только цикл по массиву.Я уверен, что у вас много элементов, но написание CSV, а затем и ODBC'а должно быть связано с некоторыми накладными расходами, и вполне возможно, что цикл будет быстрее даже при большом массиве.