Excel UDF возвращает огромное число

Надстройка Excel с использованием ДНК Excel, VS2008, С#, MyUDF (param1, parm2), когда я набираю «= MyUDF» и нажимаю Enter, Excel отображает огромное число, например 970063926, и мой код С# для MyUDF не запускается

Кто-нибудь знает, что это за огромное число?

Благодарность


person toosensitive    schedule 11.07.2011    source источник
comment
Вы не передаете параметры, которые нужны функции? Он не запустится, если вы не передадите 2 параметра и не увидите свой код, это все, что я могу сказать :(   -  person aevanko    schedule 23.07.2011
comment
Нет, я не передавал никаких параметров. Так что же такое огромное число и как его избежать или отобразить более осмысленное сообщение в этом случае? Благодарность   -  person toosensitive    schedule 25.07.2011
comment
Хотел бы я рассказать тебе. Я пробовал всевозможные опечатки в своих собственных UDF надстройки С#, и во всех случаях я получаю ошибку #NAME, если забываю передать параметры. Извините, я ничем не смог помочь, надеюсь, кто-то еще увидит ветку/комментарии и ответит на него для вас!   -  person aevanko    schedule 25.07.2011


Ответы (2)


Это просто немного странное поведение Excel. Возвращаемое число является внутренним идентификатором функции UDF, и, вводя имя функции без скобок, вы заставляете его обрабатываться как именованный диапазон, а не как функция. Если вы хотите вызвать функцию без аргументов, используйте:

=MyUDF()

... если вы наберете =MyUDF, то вы попросите Excel разыменовать имя функции так же, как он разыменует =A1 значение в ячейке A1 или =MyNamedRange для любого именованного диапазона, на который ссылается.

Я не думаю, что поведение, которое вы наблюдали, имеет какое-либо практическое применение, но, конечно, ваш код не будет иметь ничего общего с получением возвращаемого значения, так что не волнуйтесь, вы не сделали ничего плохого!

person Jon G    schedule 24.06.2015

Есть ли способ избежать такого поведения? Если параметр не указан, я бы хотел, чтобы =MyUDF возвращал ошибку вместо числа.

person user5256439    schedule 07.01.2016