У меня есть тип Enum в VBA, и я хочу использовать его как индекс для массива. Проблема в том, что я хочу создать Enum во время выполнения на основе ввода из другой функции.
Итак, у меня есть:
Enum Rating_
AAA = 1
AA = 2
A = 3
End Enum
и следующий массив:
Dim arr(1 To 3) as Double
arr(1) = 0.1
arr(2) = 0.2
arr(3) = 0.3
Также у меня есть функция, которая выводит одну из следующих строк. Внутренняя работа функции не имеет значения. Для решения этой проблемы это может быть просто строка (одно из значений Enum):
funct(x,y) = "AAA"
funct(x,y) = "AA"
funct(x,y) = "A"
Я хочу построить строку с вызовом Enum, такую как:
Dim str As String
str = "Rating_." & funct(x,y)
и используйте его вместе с функцией Evaluate, например:
Evaluate("arr(" & str & ")")
Приведенный выше код выдает ошибку:
Ошибка 2029
и следующие
Evaluate("""arr(" & str & ")""")
где funct (x, y) = "AAA" дает:
обр (Rating_.AAA)
в виде строки.
Я хотел бы получить 0,1 (0,2, если funct (x, y) = "AA", 0,3, если funct (x, y) = "A").
Заранее спасибо.