2010-11-12 5 views
0

J'ai une DLL exposée via les macros COM vers VBA dans mon classeur Excel. Dans la dll, la fonction principale prend en entrée un ensemble de données provenant de diverses cellules de la feuille de calcul, et produit une table de sorties à afficher ailleurs sur la même feuille de calcul Excel. J'essaie de comprendre comment appeler cette fonction chaque fois que l'une des cellules d'entrée change, remplissant toutes les cellules de sortie en même temps.Comment mapper des cellules Excel à une fonction VBA renvoyant une table de données?

Il a été porté à mon attention qu'un VBA UDF cannot write to the speadsheet calling it (pas d'effets secondaires) ... il peut seulement lire à partir de la feuille de calcul et renvoyer des valeurs par l'intermédiaire de la valeur de retour principale de fonctions.

Existe-t-il un bon moyen de mapper un grand ensemble d'entrée à un grand ensemble de sortie sans avoir à appeler la DLL séparément pour chaque entrée dans le tableau?

Répondre

1

Oui. Si la fonction retourne un tableau, vous pouvez sélectionner toutes les cellules de résultats futurs, entrez la formule une fois,

=TheFunction(a1,b2,c3) 

et appuyez sur Ctrl + Maj +Entrez.

Questions connexes