Pergunta

Eu estou olhando para efectuar um ciclo através de células e construir um intervalo para um gráfico.O meu principal problema é que eu não consigo descobrir como incorporar o 'eu' no intervalo.Exemplo:

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
Foi útil?

Solução

Você provavelmente precisará ter:

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

Não, a mais clara da linha de sempre, mas deve dar-lhe o padrão de passar.Existem outros problemas como a necessidade de um "eu" em vez de um "Loop" e não i=i+1, mas no meu computador isso me deu um gráfico com várias séries sobre ele.

Outras dicas

  1. Você não incremento manualmente i.
    A função for loop já faz isso para você.
    Então, remover que i = i + 1.

  2. Agora, para tornar a sua Range de trabalho, seria necessário o seu "" ser algo como isto : Range("E" & i & ":G" & i).Eu não entendo muito bem o que você está tentando alcançar com a tentativa de levar os dados de 6 colunas diferentes..Ver gama para obter mais informações.

Tente

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

isso irá copiar todos os valores em uma matriz para uso em série de coleção

utilização Next i em vez de Loop;e se livrar do que i = i+1.Além disso, use "E" & i & ":G" & i em vez de "E&i:G&i"

Um passo mais, em 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.

este não é ainda válido na sintaxe, a palavra-chave Loop está associado a outra palavra-chave Do, e For está associado com Next

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top