Итак, у меня есть приложение, в котором я просматриваю данные из множества различных таблиц и вводю данные в группу переменных, которые будут использоваться в других местах. Я написал функцию для поиска и возврата строки (в виде Range) из указанной таблицы с учетом записи в первом столбце:
Public Function RowLookup(table As Range, entry As String) As Variant
Dim rowNum As Variant
rowNum = Application.Match(entry, table.Columns.item(1), 0)
If IsError(rowNum) Then
RowLookup = CVErr(xlErrValue)
Else
RowLookup = table.Rows(rowNum)(1)
End If
End Function
Однако теперь я получил тонну кода это выглядит так:
tempRow = RowLookup(Range("Table1"), var1)
If IsError(tempRow) Then
var2 = ""
var3 = ""
var4 = ""
var5 = ""
Debug.Print "Error looking up data"
Else
var2 = tempRow(1, 2)
var3 = tempRow(1, 3)
var4 = tempRow(1, 4)
var5 = tempRow(1, 6)
End If
Есть идеи, как включить этот шаблонный код в функцию? Я хочу, чтобы он взял произвольно длинный список пар (colIndex, variable) и затем установил каждую переменную на основе columnIndex. Использование коллекции не работает, так как я могу изменить только запись в коллекции, а не исходную переменную.