Who*_*s19 6 microsoft-excel microsoft-excel-2010
我在excel中制作了一个图表,如果值为零,我想在其中隐藏数据标签。对于包含值本身的数据标签,这是通过使用自定义格式完成的,如此处所述如何在 Excel 图表中隐藏 0 值数据标签?.
但是,如果数据标签不包含值本身而是系列名称,则这不起作用。如果值为零,有没有办法隐藏包含系列名称的数据标签?
我认为这属于VBA的世界。否则,对单个数据标签的处理相当有限。
下面的代码将迭代图表中的系列及其数据点,然后删除与Value=0.
那里有一行代码(已注释),它将再次将数据标签添加到所有点以重置它们。如果您只想删除,则可以跳过此行。
编辑:添加到外部循环中ActiveSheet.ChartObjects以便处理工作表上的所有图表。
Sub RemoveZeroValueDataLabel()
'runs through every chart on the ActiveSheet
Dim cht As Chart
Dim chtObj As ChartObject
For Each chtObj In ActiveSheet.ChartObjects
Set cht = chtObj.Chart
Dim ser As Series
For Each ser In cht.SeriesCollection
Dim vals As Variant
vals = ser.Values
'include this line if you want to reestablish labels before deleting
ser.ApplyDataLabels xlDataLabelsShowLabel, , , , True, False, False, False, False
'loop through values and delete 0-value labels
Dim i As Integer
For i = LBound(vals) To UBound(vals)
If vals(i) = 0 Then
With ser.Points(i)
If .HasDataLabel Then
.DataLabel.Delete
End If
End With
End If
Next i
Next ser
Next chtObj
End Sub
Run Code Online (Sandbox Code Playgroud)
这个答案Values来自使用此处详细介绍的Series技术。
这是一些随机数据的结果,其中几个 0 值条已删除其数据标签。

| 归档时间: |
|
| 查看次数: |
10179 次 |
| 最近记录: |