Les fonctions définies par l'utilisateur dans le complément Automation se comportent différemment Excel 2007

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

Question

J'ai créé un complément d'automation dans C # .NET et j'ai une dll shim pour cela. le dll shim a toutes les méthodes définies par l'utilisateur dans ce qui appelle le approprié méthodes de l'assembly .NET.

Le problème auquel je suis confronté est lié à Excel 2007.

Dans Excel 2003, 1. Ajouter une nouvelle forme à une feuille de calcul 2. Insérer > > Fonction > > SOMME. La boîte de dialogue des arguments de fonction apparaît 3. cliquez sur la forme nouvellement insérée au lieu d'une cellule Remarque: rien ne se passe et aucune valeur de cellule n'est entrée automatiquement dans la liste. boîte à arguments

Maintenant dans Excel 2007, 1. Insérer une nouvelle forme 2. Onglet du ruban de formules > > Insérer une fonction > > SOMME. Boîte de dialogue des arguments de fonction se lève 3. Cliquez sur la forme nouvellement insérée Notez que la boîte de dialogue d'erreur suivante s'affiche: "La formule que vous avez saisie contient une erreur "

Cette boîte de dialogue apparaît pour une fonction prédéfinie (SUM). Si je sélectionne mon fonction de la liste à la place de SUM, la boîte de dialogue d'erreur ne s'affiche pas et le dialogue d'argument de fonction disparaît tout simplement. La cellule affiche alors une erreur smarttag.

Y a-t-il quelque chose qui doit être placé dans la dll SHIM pour chaque fonction? Comme un attribut ou quelque chose qui affichera cette boîte de dialogue d'erreur. Ou peut-être une valeur spéciale renvoyée par la méthode pour indiquer que l'argument a généré une erreur.

Les fonctions définies dans la cale COM sont comme:

STDMETHOD(GetArea)(MyExcelAddIn::Range *r, double *pRetVal)
{
   return m_pMyUDF->GetArea(r, pRetVal);
}
Était-ce utile?

La solution

J'ai contacté Microsoft et ils ont confirmé qu'il s'agissait d'un bogue dans le produit Excel. Je posterai le lien du bogue dès que je le recevrai.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top