我正在尝试仅使用VBA将数据标签添加到饼图的最大部分。
当我尝试运行以下代码时,我收到一条错误消息: '对象不支持方法'
的这个属性错误引用该行:
sem = ActiveSheet.ChartObjects("REJT").Chart.SeriesCollection(1).Points(x).Value
有谁能告诉我这条线的问题是什么? 是否有另一种获取图表数据点值的方法?
Dim krb As Long
Dim x As Long
Dim rr As Long
Dim sem As Long
Dim xmax As Long
Set pts = ActiveSheet.ChartObjects("REJT").Chart.SeriesCollection(1).Points
krb = pts.Count
x = 1
rr = 0
'While loop to find largest part of pie chart
While x < (krb + 1)
sem = ActiveSheet.ChartObjects("REJT").Chart.SeriesCollection(1).Points(x).Value
MsgBox (sem)
If sem > rr Then
rr = sem
xmax = x
End If
x = x + 1
Wend
'Add data label to the largest part of pie chart
ActiveSheet.ChartObjects("REJT").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).Points(xmax).Select
ActiveChart.SeriesCollection(1).Points(xmax).ApplyDataLabels
答案 0 :(得分:1)
以下是从饼图中获取最大点值并将数据标签应用于其位置的一种方法:
Sub pieChartMaxDataLabel()
Dim cht As Chart
Set cht = ActiveChart
maxValue = WorksheetFunction.Max(cht.SeriesCollection(1).Values)
maxPosition = WorksheetFunction.Match(maxValue, cht.SeriesCollection(1).Values, 0)
cht.SeriesCollection(1).Points(maxPosition).ApplyDataLabels
Debug.Print "Max Value is: "; maxValue; " At Position: "; maxPosition
End Sub
使用如下所示的图表值进行测试:
结果: