2010-06-14 13 views
0

J'essaie de faire un C# Excel ajouter en modifier les paramètres d'une formule de tableau in-place; c'est-à-dire faire la même chose qu'un utilisateur modifiant une formule matricielle et frappant ctrl-shift-enter.Obtenir Excel add ins pour modifier les paramètres de formule de tableau; ou effectuez 'ctrl-shift-enter'

La définition de la propriété activeCell.FormulaArray n'atteint pas cela; il déclenche une erreur "Vous ne pouvez pas modifier une partie d'un tableau".

Est-ce que quelqu'un sait comment je peux y parvenir?

Une solution qui fonctionne également dans VBA serait brillante. J'ai essayé de créer une logique qui «marche» sur le périmètre de la formule matricielle et la supprime en premier, mais elle ne tient pas compte des formules matricielles adjacentes et je crois que c'est inutilement drastique.

Répondre

0

On dirait que vous êtes à la recherche de la propriété CurrentArray

Dans VBA cela va entrer dans une formule de tableau multicellulaire dans toutes les cellules de la formule de tableau à une cellule qui est Z99

 
Range("Z99").CurrentArray.FormulaArray=" ... " 

+0

Cela a conduit à ma solution, merci. J'ai produit ce qui suit: try { Excel.Range currentArray = excel.ActiveCell.CurrentArray; currentArray.Clear(); excel.get_Range (GetExcelColumnName (currentArray.Column + 1) + currentArray.Row, Missing.Value) .Select(); } catch (Exception) {} –