Excel精英培训网

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

[分享] 我学VBA数组之二:数组维数

  [复制链接]
发表于 2011-6-4 11:08 | 显示全部楼层 |阅读模式
本帖最后由 liuts 于 2011-6-5 14:57 编辑

11.JPG
上次说到,[]的用法,下面我们来看看它的真面目。,不过,我们还是要先看下evaluate方法的帮助文件,看完它,也许就不需要我说了。
其中,有一条注释是这样说的:
注释  使用方括号(例如,"[A1:C5]")与用字符串参数调用 Evaluate
方法是等效的。
EVALUATE是做什么的?
将一个 Microsoft Excel 名称转换为一个对象或者一个值。
呵呵,什么意思?在工作表中这不就是F9嘛?选取区域刷黑,我们写函数公式都经常要操作的。所以上次说的的[A1:B10]基本上可以理解成,刷黑后的数组。找个单元格输下试试?=A1:B10 F9
{130,132;80,23;179,73;92,107;35,78;15,190;178,27;12,185;70,65;64,73}
了解了[]的原理,那它有什么应用和好处呢?
比如说,我们想给[A1:B10]的每个元素,同时乘以3,不用循环,怎么办呢?[A1:B10*3]就好了
Sub test()
Dim arr
Arr=[A1:B10*3]
stop
End sub
不过,据说[]用法,局限性也挺大的。[]里面只能进行简单的”+” “-“ “*” “/” “&”。大家可以自行尝试下。,字数限制,下转二楼。
我学VBA数组之一:数组初识
我学VBA数组之三:单元格与数组双向赋值

评分

参与人数 5 +48 收起 理由
windimi007 + 1 给分不需要理由!!!
9lee + 12 不支持不行
半个城市 + 6
wbzxz + 9 相当不错。
lisachen + 20

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-6-4 11:19 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2011-6-4 11:09 | 显示全部楼层
本帖最后由 爱疯 于 2013-4-19 11:39 编辑

字数限制,只好放到二楼了
[HIDE]
好了,现在再说下,VBA数组的维数。同样,这里只谈二维及以下。

一个很重要的概念:EXCEL VBA中涉及对工作表的直接区域引用的,VBA都把它当成二维数组,不管你是选择的单行,单列,或是多行多列。这里有个例外,那就是单个单元格,如果没有定义数组,直接用变体变量,VBA只会把它处理成一个变量。比如,dim arr, arr=[A1],它会当成Arr=[A1].value的缩写,只将A1的值赋给变量arr,而不是数组arr。除非,你定义了arr(1 to N),然后用arr(1)=[A1]。

了解了这一点,那我们就能够轻易理解VBA数组函数(array,split,join,filter…)它们怪异的举动了。

那么,不涉及直接区域引用的,VBA怎么处理呢。比如,定义常量数组arr=[{1,3,5}],那么arr就是真真切切的一维行数组。注意,VBA对于一维数组的理解就是指一维行数组,即水平数组。如果,你定义常量数组 [{1;3;5}]给arr,那么VBA它并不会识别,因为它没有垂直数组的概念。因此,它就会把arr强制转成二维数组。Arr(1,1)=1,arr(2,1)=3,arr(3,1)=5。

知道了规则,把单元格数据放入VBA数组,或是把数组中数据放回单元格区域就好理解了。未完待续。。。。。。
我学VBA数组之一:数组初识
[/HIDE
]

回复

使用道具 举报

发表于 2011-6-4 11:24 | 显示全部楼层
嘿嘿,跟着学习
回复

使用道具 举报

发表于 2011-6-4 11:35 | 显示全部楼层
接着看下文 
回复

使用道具 举报

发表于 2011-6-4 13:19 | 显示全部楼层
呼呼,一定要学习的
回复

使用道具 举报

发表于 2011-6-4 15:07 | 显示全部楼层
跟着师兄学VBA数组
这个[]还真不知道可以这样用,谢谢
回复

使用道具 举报

发表于 2011-6-4 15:18 | 显示全部楼层
定义常量数组arr=[{1,3,5}]
师兄,这里为什么也要加[]呢?不加不是一样吗?
回复

使用道具 举报

发表于 2011-6-4 15:27 | 显示全部楼层
回复学习一下了,辛苦了

回复

使用道具 举报

 楼主| 发表于 2011-6-4 15:36 | 显示全部楼层
回复 9lee 的帖子

不加[]不行的,你试下就知道了。{1,3,5}是工作表中的写法哦
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-4 02:47 , Processed in 0.690933 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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