Pregunta

Estoy buscando recorrer las celdas y crear un rango para un gráfico.Mi principal problema es que no sé cómo incorporar la 'i' al rango.Ejemplo:

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
¿Fue útil?

Solución

Probablemente necesite tener:

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

No es la línea más clara, pero debería darte el patrón para pasar.Hay otros problemas como necesitando un "siguiente I" en lugar de un "bucle" y no i= i + 1, pero en mi computadora, esto me dio una gráfica con múltiples series en él.

Otros consejos

  1. no incrementar manualmente i.
    La función for loop ya lo hace por ti.
    Entonces eliminar eso i = i + 1.

  2. Ahora, para hacer tu Range funcionar, necesitarías que su "" fuera algo como esto: Range("E" & i & ":G" & i).No entiendo muy bien qué intenta lograr al intentar tomar datos de 6 columnas diferentes.Ver rango para mayor información.

try

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

Esto copiará todos los valores en una matriz para su uso en la colección serie

Use Next i en lugar de Loop;y deshacerse de ese i = i+1. Además, use "E" & i & ":G" & i en lugar de "E&i:G&i"

Un paso más allá, 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.

Esto no es ni siquiera es válido en la sintaxis, la palabra clave Loop se asocia con otra palabra clave Do, y For se asocia con Next

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top