动态图表VBA的范围为空

时间:2018-11-23 13:34:39

标签: excel vba excel-vba

我正在尝试在VBA中的图表上创建动态源数据,因为它可能因通过宏插入的数据而异。到目前为止,我有:

Set Rng = Sheets("Mapping Tables").Range("J13", Sheets("Mapping Tables").Range("J13").End(xlDown).End(xlToRight)).Select

    Worksheets("Vintage").Charts("Vintage_1").SetSourceData Rng, PlotBy:=xlColumns

但是,当我单步执行set range命令中的代码时,正在选择我的单元格。当我运行SetSourceData步骤时,什么都没有发生。当我将鼠标悬停在Rng变量上时,它表示=无。

我以前从未真正做过动态图表,但是我不明白为什么在选择范围时为什么我的范围等于零。

谢谢。

2 个答案:

答案 0 :(得分:1)

实际上,如果我没有记错的话,第一行应该给你一个错误。您不能将范围设置为“ .select”语句。 尝试删除最后的“ .select”

编辑:在定义连续范围(例如表格)时,可以使用更简洁的方法:

Sink

答案 1 :(得分:1)

尝试一下。

Sub test()
    Dim Rng As Range
    Dim obj As ChartObject
    Set Rng = Sheets("Mapping Tables").Range("J13", Sheets("Mapping Tables").Range("J13").End(xlDown).End(xlToRight))

    Set obj = Worksheets("Vintage").ChartObjects("Vintage_1")
    With obj.Chart
        .SetSourceData Rng, PlotBy:=xlColumns
    End With
End Sub