Мне было любопытно, может ли быть способ вызова функций динамически. Например.
Sub foo1()
Debug.Print "in foo1"
End Sub
Sub foo2()
Debug.Print "in foo2"
End Sub
Есть ли способ, которым я могу сделать что-то вроде:
Sub callSomeFoo(i as Integer)
Call foo&i
End Sub
Или что-то вроде этого необходимо:
Sub callSomeFoo(i as Integer)
Select Case i
Case 1
Call foo1
Case Else
Call foo2
End Select
End Sub
Не насущный вопрос... просто любопытно. Также приветствуются любые другие креативные вещи, которые могут выполнять функции call wise.
Спасибо!
edit1: Вот код, который у меня есть, и ошибка, указанная ниже:
Sub foo1()
Debug.Print "in foo1"
End Sub
Sub foo2()
Debug.Print "in foo2"
End Sub
Sub callSomeFoo()
Dim i%
'using a cell on the worksheet to determine the function. Happens to be "1"
i = Sheets("Sheet1").Range("A1").Value
'Line below works
Call foo1
'Line below gives me an error
Application.Run "foo"&i
End Sub
Ошибка:
Ошибка времени выполнения "1004" Невозможно запустить макрос "foo1". Макрос может быть недоступен в этой книге или все макросы могут быть отключены.