Я использую callByName I VBA для динамического вызова разных методов класса. В зависимости от метода у меня будет другое количество аргументов, которые будут храниться в массиве. К сожалению, CallByName принимает массив параметров, поэтому передать переменное число не просто. Есть ли способ обойти это, я нашел решение с использованием информационной библиотеки типов, но это не работает на VBA, хотя я добавил его в качестве ссылки. Ниже приводится иллюстрация того, что я хочуПередача массива аргументов в CallByName VBA
Public Sub Initialize_Object(ByRef TaskObject, Task_Collection)
Dim Task_begin As Variant, Method_Parameters As Variant
Task_begin = Task_Collection("Method")
CallByName TaskObject, Task_begin, VbMethod, Method_Parameters
Читали ли вы на чём «PARAM массив» является ? Я не могу следовать этому утверждению: «К сожалению, CallByName принимает массив параметров, поэтому передать переменное число не просто». – MikeC
Привет, Майк, извинился за замешательство. не просто передать переменное количество аргументов, не зная, сколько их есть, по существу, динамически. В идеале, что мне нужно сделать, это передать массив моих аргументов. Если бы я мог получить информацию о TypeLib, работающую на моем компьютере, тогда это было бы выполнимо, но у меня нет прав администратора, поэтому я не могу зарегистрировать его. – maracuja
Вы пишете подпрограммы, которые могли бы быть вызваны? – MikeC