预警,我正在自学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或函数未定义的错误"但我认为这是因为我的编码不正确。
答案 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