繁体   English   中英

如何使用VBA在Excel饼图上显示隐藏的类别

[英]How to show hidden categories on an Excel Pie chart using VBA

我花了几个小时研究这个问题,但没有结果,并且MSDN中发布的Excel对象模型没有任何帮助。 我有一个带有预建饼形图的Excel电子表格,可通过MS-Access VBA打开和操纵该饼形图。 将填充要显示的数据,并且在Access报告中使用结果图表。 我没有构建原始电子表格,但已对其进行了修改以供自己使用。 用户指出类别之一丢失了。 右键单击图表,然后单击“选择数据”,将弹出“选择数据源”对话框。 类别在右侧列出。 几个未经检查。 我已经全部手动选择了它们,现在图表是正确的。

问题是:我可能想取消选择,(更重要的是)使用VBA代码重新选择这些类别之一。 我很确定我可以取消选择类别,但是一旦发生这种情况,似乎就无法重新选择。 可以使用VBA重新选择以前未选择的类别吗?

打开宏录制器,然后手动过滤掉某些类别并应用过滤器,然后手动重置过滤器。

在饼图中,我具有“ a”至“ f”类别,并手动过滤出“ b”和“ d”,然后将其还原。 这是我记录的代码:

Sub Macro1()
'
' Macro1 Macro
'

'
    ActiveChart.ChartGroups(1).FullCategoryCollection(2).IsFiltered = True
    ActiveChart.ChartGroups(1).FullCategoryCollection(4).IsFiltered = True
    ActiveChart.ChartGroups(1).FullCategoryCollection(2).IsFiltered = False
    ActiveChart.ChartGroups(1).FullCategoryCollection(4).IsFiltered = False
End Sub

要重置饼图中的类别过滤器,请运行以下命令(我根据上面记录的代码编写了该代码):

Sub ResetCategoryFilters()
  Dim iPt As Long, nPts As Long
  With ActiveChart.ChartGroups(1)
    nPts = .FullCategoryCollection.Count
    For iPt = 1 To nPts
      .FullCategoryCollection(iPt).IsFiltered = False
    Next
  End With
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM