首页 > 解决方案 > 如何使我的图表数据库中的范围动态

问题描述

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

最大的问题是我对编写代码一无所知,我记录并试图找出这样的东西。我根本没有 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 秒延迟)。

标签: excelvbachartsrange

解决方案


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

推荐阅读