Вопрос

Я хочу перебрать ячейки и построить диапазон для графика.Моя главная проблема в том, что я не могу понять, как включить букву «i» в диапазон.Пример:

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
Это было полезно?

Решение

Вам, вероятно, нужно иметь:

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

Не самая яркая линия, но должна дать вам шаблон.Есть и другие проблемы, такие как нуждающиеся в «следующем I» вместо «петли» и нет I= I + 1, но на моем компьютере это дало мне граф с несколькими сериями.

Другие советы

  1. Ты не увеличивать вручную i.
    Функция for loop уже делает это за вас.
    Так удалять что i = i + 1.

  2. Теперь, чтобы сделать свой Range работает, вам нужно, чтобы его "" было примерно так: Range("E" & i & ":G" & i).Я не совсем понимаю, чего вы пытаетесь достичь, пытаясь взять данные из 6 разных столбцов.Видеть диапазон для дополнительной информации.

попробуйте

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

Это скопирует все значения в массив для использования в серии Collection

использовать Next i вместо Loop;и избавься от этого i = i+1.Кроме того, используйте "E" & i & ":G" & i вместо "E&i:G&i"

Еще один шаг вперед, в 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.

это недопустимо даже с точки зрения синтаксиса, ключевое слово Loop связано с другим ключевым словом Do, и For связан с Next

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top