Excel精英培训网

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

[分享] 【烟花原创】VBA零基础之第112篇 VBA数组(二)

[复制链接]
发表于 2014-3-2 00:19 | 显示全部楼层 |阅读模式
本帖最后由 hwc2ycy 于 2014-3-2 00:20 编辑

动态数组声明
可以在执行代码时去改变数组大小。
dim  数组名() [ as 数据类型]
当然dim也可以换成public,private等关键字。
切记数组名后的括号中不需要写入任何内容。
示例:
Dim arr()


访问静态数组:
赋值只能基于元素访问不能整体赋值。通过每一维的索引号确定元素在数组中的具体位置
示例:
1.jpg
      
可以通过for..nextfor...each循环访问数组,提高效率。

2.jpg

静态数组不能整体赋值,即使=号两边大小相同,维数相同,但是可以把静态数组赋值给可变类型变量,如下图:
6.png

访问动态数组:
A.整体赋值
3.jpg

如果指定了数组的具体类型,情况就不相同了,如下图:
4.jpg

注意:如果要将一个数组赋值给另一个数组,确定在=号左侧的是大小可以调节的数组,且类型匹配。上图中arr3=arr2,出错原因就是在于两边类型不一致。

B.基于元素访问
与静态数组的元素访问方式相同。

补充:Dim arr,arr()使用中需要注意的地方
5.jpg

当把单元格的值赋值给动态数组时,如果只有一个单元格,则会产生运行错误。所以,当需要把单元格的值赋值给动态数组时,特别需要注意。
可以通过两种方法避免:
A通过代码判断引用的单元格数量(是否大于1),如果大于1则可以直接赋值给动态数组,否则就会产生错误。
B.当没有用代码判断的情况下,建议直接声明为可变类型的变量(dim arr),这样不会报错,但后续代码就需要对变量是否是数组进行判断了。否则当准备进行数组循环时则又要产生错误。

评分

参与人数 2 +7 收起 理由
LianYu9X9 + 1 赞一个!
ghostjiao + 6 学习

查看全部评分

发表于 2014-3-2 08:51 | 显示全部楼层
回复

使用道具 举报

发表于 2014-3-2 09:33 | 显示全部楼层
回复

使用道具 举报

发表于 2014-3-30 10:03 | 显示全部楼层
一个单元格不能给动态的数组赋值
回复

使用道具 举报

发表于 2014-4-13 20:06 | 显示全部楼层
讲解的真是太好了  我一集一集的学习  
回复

使用道具 举报

发表于 2014-6-11 17:35 | 显示全部楼层
支持你
回复

使用道具 举报

发表于 2014-6-18 13:49 | 显示全部楼层
回复

使用道具 举报

发表于 2014-6-29 18:04 | 显示全部楼层
学习了。谢谢!
回复

使用道具 举报

发表于 2014-7-6 21:26 | 显示全部楼层
学习ing!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 08:35 , Processed in 0.592102 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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