2012-11-13 3 views
6

J'ai écrit le code de vba pour nommer la série dans un graphique:comment trouver le nom de la série en utilisant vba?

ActiveChart.SeriesCollection(1).name = "SPEC" 
ActiveChart.SeriesCollection(2).name = "manju" 

Mon problème est que je veux trouver le nom de la série particulière en utilisant le code vba. Dans le code ci-dessus j'ai deux séries. Maintenant, je veux trouver le nom de la série (manju) en utilisant le code vba.

+0

Y at-il des raisons pour lesquelles 'MsgBox (ActiveChart.SeriesCollection (2) .name)' ne fonctionnerait pas? –

+0

@lynn crumbling merci –

+0

@LynnCrumbling Je veux rechercher toutes les séries parce que chaque fois il sera b position différente –

Répondre

9

Pour accéder au SeriesCollection() en passant le nom, vous pouvez:

MsgBox ActiveChart.SeriesCollection("manju").Name 

C'est possible parce que index dans le SeriesCollection(index) est en fait de type Variant de sorte que le compilateur fonctionne si vous passez un type String et essayez d'accéder par nom ou si vous transmettez un Long/Integer (ou tout autre type de données numérique) pour accéder à l'énumérateur.

ou itérer le SeriesCollection, en comparant le nom actuel contre "Manju":

For i = 1 to ActiveChart.SeriesCollection.Count 
    If ActiveChart.SeriesCollection(i).name = "manju" Then 
     MsgBox "Found it!" 
     Exit for 
    End if 
Next 
+0

Lynn, cela signifie-t-il que vous ne pouvez pas accéder à la série par son nom ? – rrs

+3

@rrs Corriger - ni la méthode '.Item()' ni l'indexeur ne supportent une chaîne ... juste un numéro d'index. –

+1

Pour Office 2007 (je n'ai pas vérifié sur les versions antérieures), vous pouvez certainement accéder à 'SeriesCollection' par son nom. C'est à dire 'ActiveChart.SeriesCollection (" manju ")'. Voir la documentation d'Office 2010 ici qui l'indique: http://msdn.microsoft.com/en-us/library/office/ff836171%28v=office.14%29.aspx – CuberChase

Questions connexes