如何使用复选框控制我的图表?

时间:2018-02-15 16:40:15

标签: excel vba excel-vba

预警,我正在自学VBA,因为我在这个项目上工作,所以我很抱歉,如果我的编码引起畏缩,没有任何意义。我目前正在制作一张excel图表,其中列出了15个不同类别的四个不同系列。每当我点击指定的复选框时,我希望能够将每个系列隐藏在图表上。现在我在图表旁边有四个复选框,每个系列一个," 2015"," 2016"," 2017"和" 2018& #34 ;.我右键单击第一个复选框" 2015",然后选择分配宏。为我填写了宏名称,所以我选择了编辑,弹出了编码模块。到目前为止,我的代码看起来像这样:

Sub CheckBox25_Click()
If Cell("Q30").Value = "False" Then
Chart.Series("2015").Hidden = True
Else:
Chart.Series("2015").Hidden = False
End If
End Sub

" Q30"是我链接到复选框的单元格,以显示真/假值。

我知道" Chart.Series(" 2015")。xxx不是调用sereis的正确方法。 如果有人可以请告诉我如何正确地调用该系列,这样我就可以将它隐藏在图表中,我将非常感激。我也不确定" .hidden"是正确的标识符,如果你可以指出我正确的方向,这将是伟大的。

目前我得到" sub或函数未定义的错误"但我认为这是因为我的编码不正确。

1 个答案:

答案 0 :(得分:1)

下面的代码不是转向可见性,而是简单地过滤图表系列,记得修改工作表名称和图表名称,然后对其他系列做同样的事情:

Sub CheckBox25_Click()
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
'declare and set your worksheet, amend as required
    If ws.Cell("Q30").Value = "False" Then
        ws.ChartObjects("Chart 1").Chart.FullSeriesCollection("2015").IsFiltered = True
    Else
        ws.ChartObjects("Chart 1").Chart.FullSeriesCollection("2015").IsFiltered = False
    End If
End Sub