官方微信 手机客户端

澳洲ABC

搜索
楼主: JoyRoot.

[IT] Excel VBA code求助

[复制链接]

5

主题

25

帖子

77

积分

新手上路

Rank: 1

积分
77
发表于 2014-6-5 01:28:36 | 显示全部楼层

ActiveChart.SetSourceData Source:=Range("C75:C76,K75:" & Chr(75 + iRow - 6) & "76")
Chr是把整数变成对应的字符,如chr(65)就是A
假设IRow是1(第一周),就变成了
Range("C75:C76,K75:" & Chr(75 + 1 - 6) & "76")
也就是
Range("C75:C76,K75:" & Chr(70) & "76")
也就是
Range("C75:C76,K75:" & ”F“ & "76")
也就是
Range("C75:C76,K75:F76")
通过这种方式,来选择表格的数据源。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2014-6-5 01:53:37 | 显示全部楼层

Dim是声明变量用的。
chr是根据数字取相对应ASCII字符,如chr(13)代表回车。你代码中的chr(75)代表K。如果iRow=10,那么就是chr(79)代表O,这句代码就等同于ActiveChart.SetSourceData Source:=Range("C75:C76,K75:O76")
回复 支持 反对

使用道具 举报

5

主题

66

帖子

157

积分

正式会员

Rank: 2

积分
157
发表于 2014-6-5 03:13:59 | 显示全部楼层

本帖最后由 JoyRoot 于 2014-3-16 13:38 编辑

乘物以游心 发表于 2014-3-16 12:57

ActiveChart.SetSourceData Source:=Range("C75:C76,K75:" & Chr(75 + iRow - 6) & "76")
Chr是把整数变成 ...

那如果我要现实的数据不在连续的行呢,我要图片选在
日期行在:K75 到 O75
数据行在: K83到 O83 是
这句话该怎么写?
   ActiveChart.SetSourceData Source:=Range("K75:" & Chr(75 + iRow - 6) & "75", "K83: " & Chr(75 + iRow - 6) & "83") ?
好像not working .
结果我这样写了,可以用只是数据先update 然后再update x轴的日子。
ActiveChart.SetSourceData Source:=Range("K83:" & Chr(75 + iRow - 6) & "83")
ActiveChart.SeriesCollection(1).XValues = "='sheet1'!$K$75:" & Chr(75 + iRow - 6) & "75"
这个可用了,您看呢。
回复 支持 反对

使用道具 举报

5

主题

66

帖子

157

积分

正式会员

Rank: 2

积分
157
发表于 2014-6-5 03:33:22 | 显示全部楼层

本帖最后由 JoyRoot 于 2014-3-16 19:36 编辑

yang~_~ 发表于 2014-3-16 13:05

Dim是声明变量用的。
chr是根据数字取相对应ASCII字符,如chr(13)代表回车。你代码中的chr(75)代表K。如果i ...

谢谢你的指点。
回复 支持 反对

使用道具 举报

5

主题

66

帖子

157

积分

正式会员

Rank: 2

积分
157
发表于 2014-6-5 04:04:42 | 显示全部楼层

好像有bug, 如果输入的这周是21周以上- 52周,Chart 就不会update了。错误提示如下:
‘运行时错误1004
’方法Rang 作用于对象‘-Global'时失败。
回复 支持 反对

使用道具 举报

3

主题

31

帖子

95

积分

新手上路

Rank: 1

积分
95
发表于 2014-6-5 04:47:40 | 显示全部楼层


JoyRoot 发表于 2014-3-16 20:41

好像有bug, 如果输入的这周是21周以上- 52周,Chart 就不会update了。错误提示如下:
‘运行时错误1004

按照你的设定来看 irow的值应该是[-4,21],分别代表A-Z
超过这个范围就不起作用了
代码本身就局限性,超过Z列的数据就会报错
建议用cells函数或者用named range来控制
回复 支持 反对

使用道具 举报

0

主题

5

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2014-6-5 06:03:38 | 显示全部楼层

能用自带函数解决的问题最好不要弄vba。现在遇到runtime error还有个提示,万一vba在提数据的时候出错那可连提示都没有。我可有切身体会的。
回复 支持 反对

使用道具 举报

5

主题

66

帖子

157

积分

正式会员

Rank: 2

积分
157
发表于 2014-6-5 07:33:21 | 显示全部楼层


jy00064164 发表于 2014-3-16 21:12

按照你的设定来看 irow的值应该是[-4,21],分别代表A-Z
超过这个范围就不起作用了
代码本身就局限性,超过 ...

谢谢,你说的name range 是用dynamic chart 吗?
回复 支持 反对

使用道具 举报

5

主题

66

帖子

157

积分

正式会员

Rank: 2

积分
157
发表于 2014-6-5 08:46:09 | 显示全部楼层


voidray 发表于 2014-3-16 21:50

能用自带函数解决的问题最好不要弄vba。现在遇到runtime error还有个提示,万一vba在提数据的时候出错那可 ...

谢谢指点。
回复 支持 反对

使用道具 举报

3

主题

31

帖子

95

积分

新手上路

Rank: 1

积分
95
发表于 2014-6-5 09:20:17 | 显示全部楼层


JoyRoot 发表于 2014-3-17 18:25

谢谢,你说的name range 是用dynamic chart 吗?

formula => define name/name manager
回复 支持 反对

使用道具 举报

发表回复

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

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表