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