在Excel中绘制图表:条件标签

我使用VBA在Excel 2013中创build了一个饼图。 一切都像预期的那样工作:图表被绘制,并且该图表的每个部分都附有其百分比值。

现在我遇到了一个问题,那就是我得到了很多数据,这些数据低于数据的1%,使得图表非常丑陋,所有的“0%”部分及其标签都是这样。

现在我仍然想要所有的馅饼(否则我只是过滤了源数据),但我只想要至less2%的数据段的标签。

那可能吗?

Set DataSource = CreatePivotTableCurrFy If Not (DataSource Is Nothing) Then ' Create chart object Call ThisWorkbook.Worksheets("META").Shapes.AddChart(xlPie, 600, 200, 504, 360) Set Co = ThisWorkbook.Worksheets("META").ChartObjects(2) Co.chart.SetSourceData Source:=DataSource Co.chart.ChartTitle.Text = "Sales by Brand" Co.chart.SeriesCollection(1).ApplyDataLabels ShowPercentage:=True, ShowValue:=False End If 

你可以尝试这个不是非常整洁的解决scheme。

 Dim d As Datalabel, Dim v As Long For Each d In Co.chart.SeriesCollection(1).DataLabels 'v = CLng(Mid(d.Caption, 1, Len(d.Caption) - 1)) v = CLng(Split(d.Caption, "%")(0)) '~~> just thought this is better If v < 2 Then d.Delete Next 

可能的,只是有点复杂:)我想你想隐藏 2%以下的部分,你需要它为切片以及传说等。 当然,你首先select没有达到2%的馅饼切片(这很容易,这取决于你如何给你的切片)。 那么你可以看看这里的完整程序。 这个链接显示了一些代码来做我所解释的。