ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何用VBA为XY图表添加数据标签?

如何用VBA为XY图表添加数据标签?

作者:绿色风 分类: 时间:2022-08-17 浏览:139
楼主
wise
Q:如何用VBA为XY图表添加数据标签?
    如图所示,该XY图表只能显示数据,不能添加标签,如何给每个相应的点标添加上标签,这个只能用VBA实现。

 
A:ALT+F11→添加一个模块→在模块中输入如下VBA代码:
  1. Sub 添加数据标签()
  2.   Dim mylabel As Series, pt As Point
  3.   Dim i As Long
  4.   Set mylabel = ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
  5.   mylabel.HasDataLabels = True
  6.   i = 1
  7.   For Each pt In mylabel.Points
  8.     pt.DataLabel.Text = [A1].Offset(i, 0)
  9.     i = i + 1
  10.   Next
  11. End Sub

最后效果如图所示:

 
2楼
chrisfang
作为散点图,通常可以在数据标签上显示的值是X轴数值或Y轴数值,但很多实际情况中,用户希望在数据标签上显示其所对应的类别名称,这个功能在Excel中并不完全支持,只能对其数据标签逐一进行修改。使用VBA编程的方法可以一次性快速批量完成:
  1. Sub ChangeDL()
  2. On Error Resume Next
  3. Set DLRange = Application.InputBox(prompt:="请选择数据标签所在区域", Type:=8)
  4. If DLRange Is Nothing Then Exit Sub
  5. ActiveSheet.ChartObjects("图表1").Activate  '活动工作表中的图表名称为“图表1”
  6. ActiveChart.SeriesCollection(1).ApplyDataLabels
  7. For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
  8. ActiveChart.SeriesCollection(1).Points(i).DataLabel.Formula = "=" & ActiveSheet.Name & "!" & DLRange(i).Address
  9. Next i
  10. 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总版主之一

评论列表
sitemap