2017-04-24 1 views
-1

Je voudrais obtenir la longueur maximale dans une plage de cellules dans Excel en utilisant la bibliothèque C# interop.C# Interop, comment obtenir la longueur maximale dans une plage de cellules dans Excel

Je sais que nous pouvons le faire via Excel: -

1. =MAX(LEN(A2:A65636)) 

2. press ctrl+shft+enter after typing in the formula. 

Mais je voudrais le faire en utilisant la formule de mon programme C#.

Actuellement, je parcours toutes les cellules dans la plage de colonnes et je règle le nombre maximum. Mais il prend beaucoup de temps pour le gros fichier Excel sur 50000 lignes.

J'ai essayé même, le réglage de la formule dynamique =MAX(LEN(A2:A rcnt))

Mais cela ne fonctionne pas.

+0

Il est lent à cause du processus Interop. Gardez la formule, mais bouclez sur Application.CalculationState pour être sûr qu'Excel a calculé la valeur. –

+0

Est-ce poosible faire quelque chose comme ci-dessous, actuellement il ne fonctionne pas pour moi 1. Saisissez la formule 2. SendKeys Maj + Ctrl + Entrée pour la xlApp new_formula = « = MAX (LEN (F2: F56)) "; (range.Cells [1, cl + 1] comme Excel.Range) .Value2 = nouvelle_formule xlApp.SendKeys ("+^{ENTER}"); S'il vous plaît faites le moi savoir – Rakesh

Répondre

0

Vous pouvez essayer d'utiliser la propriété range.FormulaArray pour définir des formules dans une cellule à l'aide de C#.

Par exemple:

Range r = activeWorksheet.get_Range("Y9",Type.Missing); 
r.FormulaArray = "=MAX(LEN(D3:E3))";