Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5617|回复: 4

[已解决]如何用vba对应图表的名称

[复制链接]
发表于 2014-10-28 15:31 | 显示全部楼层 |阅读模式
本帖最后由 含月化烛 于 2014-10-29 11:25 编辑

Excel中图表的名称是如何命名的,用vba写代码时,应该怎么表示图表的名称?
EM截图_20141028152816.png EM截图_20141028152832.png
我将图表命名成“1”,用vba时,如果直接写ActiveSheet.ChartObjects("1").Activate,就没问题;
但是,因为有多个图表,我想用循环,
Sub Macro1()
Dim i%
For i = 1 To 6
    ActiveSheet.ChartObjects(" i ").Activate
    ActiveChart.SetElement (msoElementPrimaryValueGridLinesNone)
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.SeriesCollection(1).ApplyDataLabels
    ActiveChart.SetElement (msoElementDataLabelTop)
Next
End Sub
只运行到黄色的那一句,就不对了,出现了图片中的错误。

最佳答案
2014-10-28 15:35
i的引号去掉,你这里是变量I,不是字符串“i”
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-10-28 15:35 | 显示全部楼层    本楼为最佳答案   
i的引号去掉,你这里是变量I,不是字符串“i”
回复

使用道具 举报

 楼主| 发表于 2014-10-28 15:42 | 显示全部楼层
hwc2ycy 发表于 2014-10-28 15:35
i的引号去掉,你这里是变量I,不是字符串“i”

有没有什么方法不用循环,而是一次性将全部图表选中?
还有个问题,我明明将一个图表 命名成 “1”,写语句的时候,也是写的ChartObjects(“1”),可是他选中的却是另一个图表,这是怎么回事呢?

回复

使用道具 举报

发表于 2014-10-28 15:46 | 显示全部楼层
试试这个ChartObjects.Select
回复

使用道具 举报

发表于 2014-10-28 15:51 | 显示全部楼层
图表时好像名字不会像别的要求唯一性,我没有测试,以前好像有遇见过。
如果确认是图表,就在集合中枚举。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-25 12:31 , Processed in 1.036963 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表