作者:绿色风
分类:
时间:2022-08-17
浏览:139
楼主 wise |
Q:如何用VBA为XY图表添加数据标签? 如图所示,该XY图表只能显示数据,不能添加标签,如何给每个相应的点标添加上标签,这个只能用VBA实现。
A:ALT+F11→添加一个模块→在模块中输入如下VBA代码:
- Sub 添加数据标签()
- Dim mylabel As Series, pt As Point
- Dim i As Long
- Set mylabel = ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
- mylabel.HasDataLabels = True
- i = 1
- For Each pt In mylabel.Points
- pt.DataLabel.Text = [A1].Offset(i, 0)
- i = i + 1
- Next
- End Sub
最后效果如图所示:
|
2楼 chrisfang |
作为散点图,通常可以在数据标签上显示的值是X轴数值或Y轴数值,但很多实际情况中,用户希望在数据标签上显示其所对应的类别名称,这个功能在Excel中并不完全支持,只能对其数据标签逐一进行修改。使用VBA编程的方法可以一次性快速批量完成:- Sub ChangeDL()
- On Error Resume Next
- Set DLRange = Application.InputBox(prompt:="请选择数据标签所在区域", Type:=8)
- If DLRange Is Nothing Then Exit Sub
- ActiveSheet.ChartObjects("图表1").Activate '活动工作表中的图表名称为“图表1”
- ActiveChart.SeriesCollection(1).ApplyDataLabels
- For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
- ActiveChart.SeriesCollection(1).Points(i).DataLabel.Formula = "=" & ActiveSheet.Name & "!" & DLRange(i).Address
- Next i
- End Sub
修改完成的效果如下图所示:
散点图.rar |
3楼 wise |
还是不错的 |
4楼 Dead丶小峰 |
如果我是堆积柱状图,然后我要批量给每个Points赋值该怎么实现?貌似循环赋值效率比较低 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一