【发布时间】:2018-10-07 11:54:22
【问题描述】:
如果单元格的值为 0%,我有一个代码可以从自定义饼图中删除数据标签。但是,由于我的代码循环以使数据发生变化,因此我完全丢失了该特定类别的标签,因此当添加一组新数据并且值不为零时,标签不再出现。我该怎么做才能在值为 0 时删除数据标签,但当值不为零时它会重新出现,基本上是重置图表的原始设置,以便所有值/类别都有数据标签。
Sub ChartLoop()
Range("D2").Select
ActiveCell.Range("C1:E1").Select
Dim myPDF As String
Dim i As Long
For counter = 2 To 21
Sheets("CF").Select
Range("'CF'!$D$" & counter & ":$F$" & counter).Select 'numbers
Selection.Copy
Sheets("CF-Chart").Select
Range("B1:B3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'this is for removing the data labels
Dim iPts As Integer
Dim nPts As Integer
Dim aVals As Variant
Dim srs As Series
ActiveSheet.ChartObjects("Chart 5").Activate
For Each srs In ActiveChart.SeriesCollection
With srs
If .HasDataLabels Then
nPts = .Points.Count
aVals = .Values
For iPts = 1 To nPts
If aVals(iPts) = 0 Then
.Points(iPts).HasDataLabel = False
End If
Next
End If
End With
Next
ActiveSheet.ChartObjects("Chart 5").Activate
ActiveChart.ChartArea.Select
myPDF = "\\stchsfs\arboari$\Profile-Data\Desktop\Export Trial1\c2-" & Sheets("CF").Range("C" & i + 2).Value2 & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=myPDF, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
i = i + 1
Next counter
End Sub
第一个图表是我的常规图表的样子。第二个图表是我想删除值为 0 的数据标签,但保留数据标签的类别和值为其他值 >0 的数据标签。
谢谢!
【问题讨论】: