如何使我的图表数据库中的范围动态

时间:2019-04-10 17:12:31

标签: excel vba charts range

我每5秒获取一次数据(12),我想在数据输入停止后将它们放在图表上。我想通过分别阅读每一行来使图表动态化。如何避免必须写每一行?我需要以某种方式获取该范围内的偏移代码并使它循环。

最大的问题是我对编写代码一无所知,我记录下来并试图找出类似的答案。我一点都没有IT背景。

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 :(得分:0)

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