2009-03-04 3 views
1

Ich habe ein Automatisierungs-Addin in C# .NET erstellt und habe eine Shim-DLL dafür. Die Shim-DLL enthält alle benutzerdefinierten Methoden, die die entsprechenden Methoden in der .NET-Assembly aufruft.Benutzerdefinierte Funktionen in der Automatisierung Addin verhalten sich anders Excel 2007

Das Problem, das ich ist bin vor Excel 2007 im Zusammenhang

In Excel 2003, 1. Fügen Sie eine neue Form zu einem Arbeitsblatt 2. Legen Sie >> Funktion >> SUM. Die Funktionsargumente Dialog kommt 3. Klicken Sie auf die neu eingefügten Form anstelle einer Zelle Hinweis: Es geschieht nichts, und kein Zellwert wird automatisch im Argument Feld

Jetzt in Excel 2007, 1. Legen Sie trat ein neue Form 2. Formeln Ribbon Tab >> Einfügen Funktion >> SUM. Funktionsargumente Dialog kommt 3. Klicken Sie auf die neu eingefügten Form Beachten Sie, dass nun ein Fehlerdialog angezeigt wird, sagen: „Die Formel, die Sie getippt enthält einen Fehler“

Dieser Dialog kommt für eine vordefinierte Funktion (SUM). Wenn ich meine -Funktion aus der Liste anstelle von SUMME auswähle, wird der Fehlerdialog nicht angezeigt und der Funktionsargument-Dialog verschwindet einfach. Die Zelle zeigt dann einen Fehler Smarttag.

Gibt es etwas, das für jede Funktion in die SHIM-DLL eingefügt werden muss? Wie ein Attribut oder etwas, das diesen Fehlerdialog anzeigt. ODER vielleicht einige spezielle Wert, der von der Methode zurückgegeben wird, um zu sagen, dass das Argument einen Fehler generiert hat.

Die Funktion in dem COM-Shim definiert ist wie:

STDMETHOD(GetArea)(MyExcelAddIn::Range *r, double *pRetVal) 
{ 
    return m_pMyUDF->GetArea(r, pRetVal); 
} 
+0

Ich rate, dass Ihre Funktion Objekt als Argument als gegen einen bestimmten Typ wie Range nimmt. Ist das der Fall? – shahkalpesh

+0

So werden die Methoden deklariert. Diese Methode gibt "TRUE" oder "FALSE" zurück, basierend darauf, ob die ausgewählte Zelle gültig ist. STDMETHOD (IsValid) (MyAddIn :: Bereich * r, BSTR * pRetVal) { Rückgabe m_pMyExcelUDF-> IsValid (r, pRetVal); } Gibt es irgendwelche Attribute für UDF-Methoden – A9S6

Antwort

0

Ich kontaktierte Microsoft und sie bestätigte, dass dies ein Fehler in dem Produkt Excel ist. Ich werde den Bug-Link posten, wenn ich es von ihnen bekomme.

Verwandte Themen