使用下拉列表(vba)更改图表数据范围

我正在尝试使用下拉列表(vba)更改图表数据范围。 这是我的代码:

Sub SelectTable() With ActiveSheet.Shapes(Application.Caller).ControlFormat If ActiveSheet.Shapes(Application.Caller).Name = "Drop Down 2" Then Worksheets("Comparison").ChartObjects("Chart 8").Chart.SetSourceData Source:= _ Range(.List(.Value) & "[#All]") Worksheets("Comparison").ChartObjects("Chart 8").Chart.PlotBy = xlRows End If End With End Sub 

运行时错误:“1004”

同时select下拉列表。

而且,这个VBA不会基于任何数据透视表。 它将在仪表板上进行更改。

是的,图表是使用Pivot创build的,但下拉列表是UserForm和Data Validation的组合

我假设你的列表框返回你的命名范围的string

 Sub SelectTable() With ActiveSheet.Shapes(Application.Caller).ControlFormat If ActiveSheet.Shapes(Application.Caller).Name = "Drop Down 2" Then Worksheets("Comparison").ChartObjects("Chart 8").Chart.SetSourceData Source:= _ worksheet("sheetName??").Range(.Value & "[#All]") Worksheets("Comparison").ChartObjects("Chart 8").Chart.PlotBy = xlRows End If End With End Sub