Excel VBA删除指定条件的Series的图例Legend

01# 需求说明

最近遇到一个需求,用户需要再Excel 图表中动态增加数据集Series,但是又不希望出现在图例中(其他Series有图例,所以不能整体图例删除),这就需要我们删除掉制定的Legend。

02# 遇到的问题

在Legend、LegendEntries、LegendKey这些类型中,并没有发现与Series关联的项,也没有Legend显示的名称之类的属性,这样就不知道删除哪个Legend了。

03# 解决方案

后来发现Series和LegendKey共用Border属性,这样就给我们提供了一个思路,先个指定的series指定一个border 的颜色,然后再遍历所有Legend,如果发现LegendKey的border也是这个颜色,那就可以删除啦。代码如下:

''serie指的是你要删除Legend的Series
''先给serie的border制定一个少有的颜色
serie.Border.Color = RGB(254, 254, 254)
''遍历所有Legend
dim i as Long
For i= chartObj.Chart.Legend.LegendEntries.Count To 1 Step -1
	If chartObj.Chart.Legend.LegendEntries(lngLoop).LegendKey.Border.Color = RGB(254, 254, 254) Then
     chartObj.Chart.Legend.LegendEntries(lngLoop).Select
     chartObj.Chart.Legend.LegendEntries(lngLoop).Delete
	end if
next

经过测试,没有问题,不想出现的Legend已经删除掉了!

04# 后记

在网上没找到太多这方面资料,记录下来为后人提供方便吧。

元宝的程序员爸爸2022年4月于郑州
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值