2010-06-04 5 views
0

J'ai un addIn C++ .xll pour Excel. La fonction de feuille de test suivant fonctionne très bien avec le chargé Xll:ExecuteExcel4Macro sur les fonctions xll personnalisées

LPXLOPER __stdcall Test() 
{ 
    return &xlstring("Yayage",true) 
} 

à savoir = rendement Test() "Yayage" dans la feuille de calcul. xlstring est ma propre méthode personnalisée qui transforme une chaîne en une chaîne excel et spécifie si Excel ou le xll sont responsables de la libération de sa mémoire.

J'ai l'intention d'utiliser VBA pour produire un AddIn 'compagnon GUI' pour les versions 2003 et antérieures, et un projet C# Excel 2007 AddIn pour 2007 et après. Ceux-ci fonctionneront tous les deux avec un .xll indépendant de la version qui communique avec un service Web.

deux C# et VBA ont les fonctions Excel suivantes: Application.ExecuteExcel4Macro (string) Application.Evaluate (string) Application.Run (...)

Ces belles de travail (sauf .Run qui, en C#, veut prendre 32 paramètres) avec des fonctions de feuille de calcul normales qui retournent des chaînes, par exemple en VBA:

MsgBox Application.<Any above method>("=Trim("" Billy Bob  Fred "")") 

Produit une boîte de message contenant « Billy Bob Fred »

Cependant, je ne peux pas obtenir ceci pour fonctionner avec l'un de mes fonctions de feuille de calcul personnalisées. Les enregistrer en tant que commandes au lieu de fonctions de feuille de calcul ne fonctionne pas non plus.

J'ai essayé différents styles de noms de fonctions, avec et sans = /(), et à peu près tout ce que je peux penser.

Quelqu'un peut-il m'aider avec ceci?

+0

Donc, vous essayez 'Run (" = Test() ")'? Qu'est-ce qui ne marche pas? Mauvaise chaîne? Chaîne vide? Message d'erreur? – Tim

Répondre

1

Votre chaîne xl renvoie-t-elle l'adresse d'un objet temporaire?

+0

Je dois avoir trié celui-ci à la fin parce que les clients l'utilisent maintenant. Je ne peux même pas me souvenir de ce que j'étais en train de faire! –

Questions connexes