2009-02-05 6 views
1

У меня есть надстройка автоматизации, написанная на C#, которая предоставляет некоторые функции, которые будут использоваться в качестве формул в Excel.Как показать функции надстройки автоматизации .net в формуле автозаполнения excel

Формулы могут быть успешно использованы из листа Excel, но они не отображаются в списках автозаполнения формулы Excel2007.

Т.е., если я хочу использовать функцию AddNums (x, y) в листе excel, тогда я должен знать, что вызывается функцией, или я могу найти функцию в мастере функций. Было бы неплохо начать набирать Add .., а затем увидеть формулы, начинающиеся с добавления отображаемого.

Поддерживается ли это в Excel для надстроек автоматизации? (Я знаю, что это для xlls).

ответ

1

Это из Microsoft support:

автоматизации надстроек и мастер функций Каждый автоматизации Надстройка имеет свою собственную категорию в мастере функций Excel. Название категории - это ProgID для надстройки; вы не можете указать другое название категории для функций надстройки Automation. Кроме того, нет способа указывать описания функций, описания аргументов или справки для функций надстройки автоматизации в Мастере функций.

В этой статье также упоминается, что другие типы аддитов имеют приоритет в списке формул.

Мой предпочтительный подход заключается в том, чтобы написать добавление VBA, которое обертывает функциональность, которую вы раскрываете в своем текущем добавлении. Делаю это путем реализации моего кода в COM DLL (Это поддерживает IDTExtensibility2 так он загружает как надстройку COM), а затем доступ к другим методам на этом объекте с помощью очень тонких Vba оберток:

Public Function AddinInMethod (param As String) As Variant 
    Dim oAdd As Object 
    On Error GoTo Err 
    Set oAdd = Application.COMAddIns.item("MyProgID").Object 
    AddInMethod = oAdd.AddInMethod(param) 
    Exit Function 
Err: 
    AddinMethod = "#" & Err.Description 
End Function 

Это хорошо работает для меня так как весь мой код - C++.

Поскольку вы пишете код на C#, вам может быть лучше реализовать ваш add в качестве надстройки C# VSTO. Я не сделал этого лично, но похоже, что есть много хороших функций фреймворка, которые вы можете использовать как этот тип Addin (хотя вы ограничены более новыми версиями Office).

0

Я думаю, что даже в Excel 2007 функции будут перечислены. Это то, что я всегда вижу, используя мои UDF. Вот пример, вы можете попробовать. Я точно знаю, что это работает на моем компьютере.

http://book.greenwich2greenwich.com/Examples/

 Смежные вопросы

  • Нет связанных вопросов^_^