2017-08-17 2 views
0

Je voudrais mettre à jour plusieurs cellules très rapidement en utilisant C# excel interop com objet. J'ai lu longuement sur la façon de le faire pour les cellules contiguës mais les cellules que j'essaye de mettre à jour sont non-contiguës.Excel interop: mise à jour de cellules non contiguës en utilisant un seul appel de fonction excel interop

Supposons que je mettre à jour les cellules A1, B2, C3 avec les valeurs 1, 2, 3 respectivement

Le code j'ai écrit est:

Excel.Range rng = xlWorkSheet.get_Range("B2,C3") 
var data = new string[3]; 
data[0] = "1"; 
data[1] = "2"; 
data[2] = "3"; 
rng.Value2 = data; 

Le résultat est des cellules A1, B2 et C3 sont mis à jour avec la même valeur de 1 et non les 1,2 et 3 attendus respectivement.

En regardant de plus près à l'aide de la fonction Visual Studio Watch, il apparaît que la valeur rng.Value2 est une valeur singulière et non un tableau.

Donc, ma question est de savoir comment mettre à jour la feuille de calcul pour les cellules non contiguës en utilisant un appel de fonction excel interop?

Répondre

0

En VBA, c'est vraiment facile. Également testé avec l'automatisation C++:

Sub Test() 
Dim newRng As Range 
Set newRng = Application.Union(Range("A1:b18"), Range("e4:e5")) 
newRng.Value = 10 
End Sub 
+0

Puis-je attribuer différentes valeurs à chaque cellule dans newRng? – user3651514