Sub test() Dim arr arr = [a1:d5]End Sub
这样,单元格区域A1:D5,便赋值给了数组变量arr。请问:
假如是要把sheet1、sheet2、sheet3,这三张工作表的单元格区域A1:D5,一起赋值给数组变量arr。能不能,只在赋值号右边,怎么怎么变变 ..... 就一下子,赋值到arr中?当然,arr这时可能将是3维数组[em04]
我就是想知道存不存,如test()中的赋值方法那样简便的方法?
把二维数组的二维数值看作是EXCEL的行和列完全就是对数组的误解,数组不是EXCELVBA独创的东西,
在很多的编程语言中都有数组,是EXCEL的行列表格适应了二维数组,而不是数组适应了EXCEL的行和列.
在你开始学习EXCELVBA时,把二维数组的二维比作行和列,只为了让你形象地理解数组的基本结构,
但你不能把二者给划上等号.
数组本身仅仅是一个树形的有序列的数值集合,可以用序号索引到对应的数值.
程序运行时创建的数组相当于运行时在内存中临时生成的一个树形的可用序号索引的小型数据库,仅此而已.
所以你可以根据你的数据索引规则来创建数组的维数,
数组不但可以是arr(x,x,x,....)
还可以是arr(x)(x)(...)....
如:
arr = Array(Sheet1.Range("a1:d5").Value, Sheet2.Range("a1:d6").Value, Sheet3.Range("a1:d5").Value)
Dim arr2(2)For i = 0 To 2arr2(i) = Array(Sheet1.Range("a1:d5").Value, Sheet2.Range("a1:d6").Value, Sheet3.Range("a1:d5").Value)Next
使用道具 举报
我突然很想知道爱疯的年龄..[em04]
我是想:
arr = [a1:d5]执行前,arr是叫变体变量吧?(好像很多位高手说过,我忘了,不确定)
arr = [a1:d5]执行后,arr是数组变量
变量arr接受了这样的(赋值)请求,至少肯定VBA认同这种赋值。于是疑问:
为什么这里这么简便,不能不让我联想,如果1楼象那样情况时,还能。。。。吗?
PS:DJ想说什么[em13]
我看你说这句话:怎么怎么变变 ..... 就一下子
我就突然很想知道你的年龄
语文不好的恶果
目前只晓得
Dim arr(1 to 3)arr(1) =sheet1.[a1:d5].value
arr(2) =sheet2.[a1:d5].value
arr(3) =sheet3.[a1:d5].value不晓得有没有更直接的方法,等着学习
谢谢上清宫主!
昨天搜到这个:http://www.officefans.net/cdb/viewthread.php?tid=74788,觉得很厉害。
pAWfLup2.rar (8.84 KB, 下载次数: 9) 2010-3-24 11:35 上传 点击文件名下载附件 这样赋值到数组可能吗?
这样赋值到数组可能吗?
看各人的思维了,3维数组名称(第1维,第2维,第3维)可以是行列表、行表列、列行表…就看各人象铁耙版主那样咋赋值咋行
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )
GMT+8, 2024-5-20 12:32 , Processed in 0.301970 second(s), 11 queries , Gzip On, Yac On.
Powered by Discuz! X3.4
Copyright © 2001-2020, Tencent Cloud.