Question

Je cherche à parcourir les cellules et à créer une plage pour un graphique.Mon principal problème est que je n'arrive pas à comprendre comment intégrer le « i » dans la plage.Exemple:

Dim name As String
Dim newChart as Chart
Dim i as Integer
Set newChart = Charts.add    

For i = 1 To 20

    accName = Range("C" & i).Value          'I understand why this works. 

    With newChart
        .ChartType = xlColumnClustered
        .SeriesCollection.NewSeries     
        .SeriesCollection(1).Name = accName
        .SeriesCollection(1).Values = wb.Worksheets("Summary-Account").Range("E&i:G&i, I&i:K&i, M&i:O&i, Q&i:S&i")          'How can I get this to work?
        .SeriesCollection(1).XValues = wb.Worksheets("Summary-Account").Range("E3:G3, I3:K3, M3:O3, Q3:S3")
    End With

    i = i + 1

Loop
Était-ce utile?

La solution

Vous devez probablement avoir:

.SeriesCollection(1).Values = wb.Worksheets("Summary-Account").Range("E" & i & ":G" & i & ", I" & i & ":K" & i & ", M" & i & ":O" & i & ", Q" & i & ":S" & i)

Pas la ligne la plus claire de jamais, mais devrait vous donner le motif à passer.Il y a d'autres problèmes comme ayant besoin d'un "prochain i" au lieu d'une "boucle" et non i= i + 1, mais sur mon ordinateur cela m'a donné un graphique avec plusieurs séries dessus.

Autres conseils

  1. Toi ne le faites pas incrémenter manuellement i.
    La fonction for loop le fait déjà pour vous.
    Donc retirer que i = i + 1.

  2. Maintenant, pour faire votre Range fonctionne, vous auriez besoin que son "" ressemble à ceci : Range("E" & i & ":G" & i).Je ne comprends pas très bien ce que vous essayez de réaliser en essayant de prendre des données de 6 colonnes différentes.Voir gamme pour plus d'informations.

essayer

.SeriesCollection(1).Values = Range("E1").Resize(20,1).Value

Ceci copiera toutes les valeurs en une matrice à utiliser dans la collection série

utiliser Next i au lieu de Loop;et débarrasse-toi de ça i = i+1.Utiliser aussi "E" & i & ":G" & i au lieu de "E&i:G&i"

Un pas de plus, en VBA

Dim i as double
For i = 1 to 100 Step 10  '<= Step 10 means when updating i, i = i + 10, and default value would be 1
Loop  '<=breaks here, compile error is expected.

ce n'est même pas valable en syntaxe, le mot clé Loop est associé à un autre mot-clé Do, et For est associée à Next

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top