1

所以我有一张名为“仪表板”的表格,上面有几个图表,但每周我都会将数据添加到这些图表所基于的表格中。包含此表数据的第二张表是“历史总计”,我想要的数据位于 A 到 E 列(包括标签和标题)。我正在尝试自动更新图表,但我不太清楚为什么这不起作用。这是我到目前为止的代码:

Sheets("Dashboard").Select
ActiveSheet.ChartObjects("Chart 4").Activate
ActiveChart.SetSourceData Source:=Sheets("Historical Totals").Range("A1", Range("E1").End(xlDown))

我试过分开我们的范围,它正在选择适当的数据,所以我真的不知道我在哪里犯了错误。

4

2 回答 2

3

尝试以下。每次使用 Range 时都需要参考数据表:

Sheets("Dashboard").ChartObjects("Chart 4").Activate
ActiveChart.SetSourceData _
        Source:=Sheets("Historical Totals").Range(Sheets("Historical Totals").Range("A1"), _
                Sheets("Historical Totals").Range("E1").End(xlDown))
于 2012-12-16T13:02:15.437 回答
0

假设您只有worksheet“历史总计”中的表格,我通常会选择xlUp而不是xlDown,但以下内容实际上与 Philip A Barnes 的回答相同:

Sub setArea()

With Excel.ActiveWorkbook
        '.Sheets("Dashboard").Select '<==no need to select for the code to execute
        .Sheets("Dashboard").ChartObjects("Chart 1").Activate
End With

With Excel.ActiveWorkbook.Sheets("Historical Totals")
     Excel.ActiveChart.SetSourceData _
                      Source:=.Range( _
                                    .Cells(1, 1), _
                                    .Cells(.Cells(.Rows.Count, 5).End(Excel.xlUp).Row, 5) _
                                    )
End With

End Sub
于 2012-12-16T22:26:07.123 回答