Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: 爱疯

[已解决]这样赋值到数组可能吗?

[复制链接]
 楼主| 发表于 2010-3-24 11:50 | 显示全部楼层

QUOTE:
以下是引用上清宫主在2010-3-24 11:43:00的发言:

看各人的思维了,3维数组名称(第1维,第2维,第3维)可以是行列表、行表列、列行表…就看各人象铁耙版主那样咋赋值咋行  

 

单看9楼,我也觉得3种方式都行。甚至2维数组,列行,应该也行。

问题是,如果当有一种赋值方法,可以直接产生3维数组,这个3维的顺序,我(只能)猜想 ....  如9楼。

就像2维一样,赋值后发现就已经是arr(行,列)这种样式了。。。。。。。。。。。[em09]

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2010-3-24 17:49 | 显示全部楼层

多维数组是可以随意变形的,一维二维,变三维,二维变三维,变一维,行列互相转换。

因为数组元素是连续存放的。我个人认为9楼的是可以验证的,但是比较麻烦,要用CopyMemory函数。

回复

使用道具 举报

 楼主| 发表于 2010-3-24 19:35 | 显示全部楼层

看到CopyMemory函数,就怕。。。。不会

[em04]
回复

使用道具 举报

发表于 2010-3-24 21:13 | 显示全部楼层    本楼为最佳答案   

把二维数组的二维数值看作是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 2
arr2(i) = Array(Sheet1.Range("a1:d5").Value, Sheet2.Range("a1:d6").Value, Sheet3.Range("a1:d5").Value)
Next

回复

使用道具 举报

 楼主| 发表于 2010-3-24 21:42 | 显示全部楼层

谢谢飞版!

你说的树形,是不是和它一样?

这样赋值到数组可能吗?

这样赋值到数组可能吗?

我这么记好了:数组,是不断把零散的组成一块。整1次,就多1维....[em04]

“如果使用了 Preserve 关键字,就只能重定义数组最末维的大小,且根本不能改变维数的数目。”这句规则,我也只是死记,请问这是为什么呢?

回复

使用道具 举报

发表于 2010-3-24 22:02 | 显示全部楼层

爱疯是运行了飞版的程序看的吧。你自己多编几个数组玩就熟悉什么叫数组了。数组定义以后不能改变维数,可是数组的元就可以是数组啊。你看飞版的这个就是

回复

使用道具 举报

发表于 2010-3-24 22:05 | 显示全部楼层

QUOTE:
以下是引用爱疯在2010-3-24 21:42:00的发言:

“如果使用了 Preserve 关键字,就只能重定义数组最末维的大小,且根本不能改变维数的数目。”这句规则,我也只是死记,请问这是为什么呢?

这是数组的存储机理决定的,以前看过一篇关于数组存储原理的文章,是从C源码的本质上来讲解数组的,找不到了。

某一种东西,都有它的使用规则,我们要使用它就必须遵守它的规则,除非我们能从本质上改变得了它。就好比一个对象,我们要使用它,就必须遵守它的属性方法规则,否则你只有为放弃它,自己去写一个你自己想要的。

回复

使用道具 举报

发表于 2010-3-24 22:11 | 显示全部楼层

[em01][em01]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-3 03:35 , Processed in 0.249468 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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