Пользовательские функции в надстройке автоматизации ведут себя по-разному Excel 2007

StackOverflow https://stackoverflow.com/questions/609402

Вопрос

Я создал надстройку для автоматизации в C # .NET и у меня есть shim dll. В shim dll есть все определяемые пользователем методы, которые вызывают соответствующие методы в сборке .NET.

Проблема, с которой я сталкиваюсь, связана с Excel 2007.

В Excel 2003 1. Добавьте новую форму на лист 2. Вставьте > > Функция > > SUM. Откроется диалоговое окно «Аргументы функции» 3. нажмите на вновь вставленную фигуру вместо ячейки Примечание: ничего не происходит, и значение ячейки не вводится автоматически в окно аргумента

Теперь в Excel 2007, 1. Вставьте новую форму 2. Вкладка «Лента формул» > > Вставить функцию > > SUM. Диалог Аргументы функций подходит 3. Нажмите на вновь вставленную форму Обратите внимание, что теперь отображается диалоговое окно с сообщением об ошибке: "Введенная вами формула содержит ошибку "

Это диалоговое окно открывается для предопределенной функции (SUM). Если я выберу свой функция из списка вместо SUM, диалоговое окно ошибки не отображается и диалоговое окно «Аргумент функции» просто исчезает. Затем ячейка показывает ошибку SmartTag.

Есть ли что-то, что нужно поместить в dll SHIM для каждой функции? Как атрибут или что-то, что будет отображать это сообщение об ошибке. Или, может быть какое-то специальное значение, которое возвращается методом, чтобы сказать, что аргумент сгенерировал ошибку.

Функция, определенная в COM-шимме, выглядит следующим образом:

STDMETHOD(GetArea)(MyExcelAddIn::Range *r, double *pRetVal)
{
   return m_pMyUDF->GetArea(r, pRetVal);
}
Это было полезно?

Решение

Я связался с Microsoft, и они подтвердили, что это ошибка в продукте Excel. Я опубликую ссылку об ошибке, когда получу ее от них.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top