Excel图表VBA通过数据标签循环

我有许多工作表上每个graphics,我想循环通过每个图中的每个数据标签删除任何等于0,但似乎无法拉数据标签值。

With ActiveChart For k = 1 To .SeriesCollection.Count For j = 1 To .SeriesCollection(k).Points.Count For l = 1 To .SeriesCollection(k).Points(j).DataLabels.Count If .SeriesCollection.Points(j).DataLabels(l) = 0 Then .SeriesCollection.Points(j).DataLabel(l).Delete End If Next l Next j Next k End With 

(忽略通过每个图表循环激活每个图表,该位的作品,保持代码示例最小)

任何人都可以build议如何循环数据标签,检查值,并删除适当的地方?

你近了!

您只错过了.Caption来检查DataLabel中的文本的值!

我将DataLabels(l)更改为DataLabels.Item(l) (您在代码中有一个不稳定的地方)。

 With ActiveChart For k = 1 To .SeriesCollection.Count For j = 1 To .SeriesCollection(k).Points.Count For l = 1 To .SeriesCollection(k).Points(j).DataLabels.Count If .SeriesCollection.Points(j).DataLabels.Item(l).Caption = 0 Then .SeriesCollection.Points(j).DataLabels.Item(l).Delete End If Next l Next j Next k End With 

OP使用的最终代码:

 With ActiveChart For k = 1 To .SeriesCollection.Count For j = 1 To .SeriesCollection(k).Points.Count If .SeriesCollection(k).Points(j).DataLabel.Caption = 0 Then .SeriesCollection(k).Points(j).DataLabel.Delete End If Next j Next k End With