как сделать диапазон в базе данных моего графика динамическим - PullRequest
1 голос
/ 10 апреля 2019

Я получаю данные (12) каждые 5 секунд, и я хочу разместить их на графике после того, как ввод данных прекратился. Я хочу сделать диаграмму динамической, читая каждую строку отдельно. Как мне избежать написания каждой строки? Мне нужно как-то получить код смещения в диапазоне и сделать его зацикленным.

Самая большая проблема в том, что я ничего не знаю о написании кодов, я записываю и пытаюсь это выяснить. У меня вообще нет опыта в ИТ.

ActiveSheet.ChartObjects("Grafiek 1").Activate
    ActiveChart.PlotArea.Select
    ActiveChart.SetSourceData Source:=Sheets("Blad1").Range("A1:F2"), _
        PlotBy:=xlRows
    ActiveChart.SetSourceData Source:=Sheets("Blad1").Range("A1:F1,A3:F3"), _
        PlotBy:=xlRows
    ActiveChart.SetSourceData Source:=Sheets("Blad1").Range("A1:F1,A4:F4"), _
        PlotBy:=xlRows

Я хочу, чтобы диапазон увеличивался автоматически (т.е. a3: f3 -> a4: f4 -> ...), чтобы каждая строка данных помещалась на график отдельно (я использую задержку в 1 секунду).

1 Ответ

0 голосов
/ 10 апреля 2019

Объект Range принимает строку в качестве аргумента, поэтому вы должны иметь возможность циклически проходить по строкам следующим образом:

Dim intRowCount as Integer
Dim intTotalRows as Integer 'You will have to give this a value

For intRowCount = 1 to intTotalRows
    'Your 1 second delay goes here
    Dim strRangeString as String
    strRangeString = "A1:F1,A" & Trim(Str(intRowCount + 2)) & ":F" & Trim(Str(intRowCount + 2)) 'Or whatever your row offset is
    ActiveChart.SetSourceData Source:=Sheets("Blad1").Range(strRangeString), _
        PlotBy:=xlRows
Next intRowCount
...