Использование констант массива в функции Excel vba - PullRequest
1 голос
/ 01 октября 2009

У меня есть функция в VBA типа

Function MyFunc(Indx As Integer, k As Long, Rho As Range, A As Range) As Variant
....
End Function

, который вызывается как пользовательская функция из листа Excel. При вызове с двумя последними аргументами в диапазоне

Результат = MyFunc (1,98, A1: A2, B1: B2))

работает нормально. Однако, когда я пытаюсь напрямую использовать константу массива вместо диапазона

Результат = MyFunc (1,98, {10,11}, {20,30})

возвращает ошибку # ЗНАЧЕНИЕ.

Я думал, что смогу это исправить, переопределив два последних аргумента как массивы типа double, но это тоже не сработало

Function MyFunc(Indx As Integer, k As Long, Rho() As Double, A() As Double) As Variant
....
End Function

Есть ли у кого-нибудь предложение для гибкого решения, которое бы разрешало любой вызывающий метод: по диапазону, а также по константе массива?

Ответы [ 2 ]

3 голосов
/ 01 октября 2009

Вы можете объявить два параметра как типы вариантов, а затем в своей функции проверить, что было передано им, используя функцию TypeName (varname).

0 голосов
/ 01 октября 2009

Возможно, вы могли бы преобразовать ваш массив в объект диапазона при вызове функции.

</p> <p>Result = MyFunc(1,98,Range(10,11), Range(20,30))</p> <p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...