前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA实战技巧24:调整图表数据标签的位置

VBA实战技巧24:调整图表数据标签的位置

作者头像
fanjy
发布2021-07-12 16:09:24
2.3K0
发布2021-07-12 16:09:24
举报
文章被收录于专栏:完美Excel

学习Excel技术,关注微信公众号:

excelperfect

有时候,在Excel中绘制的图表会出现数据标签重叠的情形,不便于查看,如下图1所示。

图1

此时,可以手工拖动数据标签来进行位置调整,也可以使用VBA代码来自动调整。

首先,了解一下图表坐标体系。如下图2所示,展示了将数据标签移到图表区域的右下角时的情形。图表坐标的原点(0,0)在图表区域的左上角。

图2

使用VBA时,

Wd=ChartArea.Width

Ht=ChartArea.Height

数据标签(DataLabel对象)的Top属性和Left属性可以取得其左上角的x和y值。那么,可以计算出数据标签的高度和宽度为:

h = Ht – y

w = Wd - x

这样,编写的VBA代码如下:

Sub FindLblSize()

Dim Lbl As DataLabel

Dim Cht As Object

Dim chartWd, chartHt

Dim OldTop, OldLeft

Dim LblWd, LblHt

Set Cht =ActiveChart

Set Lbl =Cht.SeriesCollection(1).Points(3).DataLabel

'获取图表区的高度和宽度

chartWd =Cht.ChartArea.Width

chartHt =Cht.ChartArea.Height

'存储数据标签原位置

OldTop =Lbl.Top

OldLeft =Lbl.Left

'试图移动数据标签

'左上角与图表区域右下角重合

Lbl.Top =chartHt

Lbl.Left= chartWd

'计算标签尺寸

LblWd =chartWd - Lbl.Left

LblHt =chartHt - Lbl.Top

MsgBox"标签大小: 宽度 = " &LblWd & " 高度 = " &LblHt

'移动重叠标签使之错开

Lbl.Left= OldLeft

Lbl.Top =Cht.SeriesCollection(1).Points(2).DataLabel.Top - LblHt

End Sub

在工作表中选择图表,运行FindLblSize过程,结果如下图3所示。

图3

小结:由于可以手动拖动数据标签来调整其位置,上述代码看似用处不大,但是其演示的技术可以帮助我们了解图表布局和相关对象属性,并且在以编程方式检查一系列重叠的数据标签并需要处理时,上述代码是一个基础。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档