【问题标题】:Change chart data range using a drop down list (vba)使用下拉列表 (vba) 更改图表数据范围
【发布时间】:2015-12-17 16:01:34
【问题描述】:

我正在尝试使用下拉列表 (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'

同时选择下拉列表。

此外,此 VBA 不会基于任何数据透视表。它将在仪表板工作表上进行更改。

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

【问题讨论】:

    标签: vba excel graph


    【解决方案1】:

    我假设您的列表框返回您命名范围的字符串

    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
    

    【讨论】:

    • 嗨,Eric K 即使给出了“比较”的工作表名称,仍然得到相同的结果。
    • 似乎所有代码都很好,我找不到任何问题。请检查命名范围是否可访问 -> Range(.Value & "[#All]")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多