2015-05-18 6 views
0

У меня возникла ошибка несоответствия типов в VBA превосходят со следующим кодом:Excel VBA Тип Несовпадение Ошибка Использование Оценивать с Вариантов

M(i, GPARAM(1)) = Evaluate(Func & "(" & EvalVect & "," & GPARAM & ")") 

Где Func это строка, содержащая имя функции и EvalVect & GPARAM оба варианта.

Если я жестко запрограммировал выражение, объясняющее имя функции, оно работает без проблем, поэтому проблема связана с моим пониманием функции оценки, а не с UDF.

M(i, GPARAM(1)) = Func1(EvalVect, GPARAM) 

Любые указатели будут оценены.

Приветствия

+0

'Evaluate' работает так, как если бы вы ввели строку формулы в ячейку. Работает ли ваша строка формулы в ячейке? – Rory

+0

Вы заметили, что в 'Тип несоответствие' ваша функция называется' Func', а в рабочем примере - 'Func1'? –

+0

Если он работает так, как вы говорите, вы можете просто пропустить «1» из выражения, чтобы дать: Evaluate (Func1 & »(« & EvalVect & »,« & GPARAM & »)») – Tragamor

ответ

1

вы GPARAM массив, и вы пытаетесь, чтобы добавить его в строку - обратите внимание, что вы должны дать это индекс.

Evaluate(Func & "(" & EvalVect & "," & GPARAM(1) & ")") 
Смежные вопросы