Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 吕?布

[分享] VBA数据类型自动转换理解

[复制链接]
 楼主| 发表于 2009-11-24 13:07 | 显示全部楼层

Sub a()
    Dim arr()
    arr = [A2:B5]
    Stop
End Sub

这里不成功我想应与[A2:B5]这种快速引用方式有关,也就是说,用这种方式时,转换成动态数组时,并没有象Range一样自动使用Value属性转换。但这种方式与普通方式不同(这种不同不只表现为速度上的不同)是确定的。写代码时用这种方式不会自动列出成员,但用Range("A2:B5")时写完点时会自动列出成员。这也许是不自动使用Value属性的原因,因为这样写的代码运行时编译器不知道有这个属性。

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

使用道具 举报

发表于 2009-11-24 13:36 | 显示全部楼层

QUOTE:
以下是引用吕?布在2009-11-24 13:07:00的发言:

Sub a()
    Dim arr()
    arr = [A2:B5]
    Stop
End Sub

这里不成功我想应与[A2:B5]这种快速引用方式有关,也就是说,用这种方式时,转换成动态数组时,并没有象Range一样自动使用Value属性转换。但这种方式与普通方式不同(这种不同不只表现为速度上的不同)是确定的。写代码时用这种方式不会自动列出成员,但用Range("A2:B5")时写完点时会自动列出成员。这也许是不自动使用Value属性的原因,因为这样写的代码运行时编译器不知道有这个属性。

辛苦了,吕布,,,[em27]

回复

使用道具 举报

发表于 2009-11-24 16:30 | 显示全部楼层

麻烦吕布了!

Variant(1 to 4, 1 to 2)
Variant/Variant(1 to 4, 1 to 2)

它俩,应分别称作什么数据类型啊?

PS:还是很不明白[em04]

回复

使用道具 举报

 楼主| 发表于 2009-11-24 17:41 | 显示全部楼层

QUOTE:
以下是引用爱疯在2009-11-24 16:30:00的发言:

麻烦吕布了!

Variant(1 to 4, 1 to 2)
Variant/Variant(1 to 4, 1 to 2)

它俩,应分别称作什么数据类型啊?

PS:还是很不明白[em04]

Variant(1 to 4, 1 to 2)

是二维数组(可能是静态的,也可能是动态的),其元素类型是Variant,其一种定义方式是:

dim arr(1 to 4,1 to 2) as Variant,这里arr便是这种类型


Variant/Variant(1 to 4, 1 to 2)是Variant类型(斜杠前面的),但是,这个Variant变量实际是一个二维数组Variant(1 to 4, 1 to 2),Variant(1 to 4, 1 to 2)我解释与前面的一样

回复

使用道具 举报

发表于 2009-11-24 17:58 | 显示全部楼层

爱疯是否在问存储data后是什么数据类型??

吕布,如果猜测对的话,应该和实际存储的数据类型有关,对么?哈哈

回复

使用道具 举报

 楼主| 发表于 2009-11-24 18:38 | 显示全部楼层

一个是数组,数组储存是动态的

一个是Variant类型,也是动态的,与实际类型有关系的。内存分配是不是连续我不清楚。但是好象是有2个byte储存实际类型,有8个byte储存与具体数据有关的东西,对于数组,这8个byte里储存的是一个指针。

回复

使用道具 举报

发表于 2009-11-24 18:43 | 显示全部楼层

谢谢了!

为什么吕布说,也可能是动态的?dim arr(1 to 4,1 to 2) as Variant不就是静态的吗?

和气生财的回复,我不大理解[em04]

回复

使用道具 举报

发表于 2009-11-24 20:00 | 显示全部楼层

肯定都是动态的啦。WINDOWS的内存管理就是这样的,页面和内存是不断交换的,所以会经常听到硬盘声

[em04]

数组储存是连续的,这里的连续指的是虚拟地址(我们常说的内存地址都是虚拟地址,&h0000000-&hffffffff)

回复

使用道具 举报

发表于 2009-11-25 00:41 | 显示全部楼层

[em02][em02][em02]
回复

使用道具 举报

发表于 2009-11-25 06:31 | 显示全部楼层

学习[em03][em03]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 03:42 , Processed in 0.372475 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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