浅谈:excel的vba数组

转自:微点阅读(www.weidianyuedu.com)微点阅读 - 范文大全 - 免费学习知识的网站

什么是vba数组?先让我们从字面来看一下它的意思:“数:数据;组:组合”。从字面很直观地看出,数组就是N个数据的组合,如果某个变量只包含一个数据,就不是数组,只能是一个普通的变量。

有人把数组比喻为一串用线穿起来的辣椒,也有人比喻为班级里一群学生。

如果你当过兵,每天训练前肯定会先做队伍集合,如果这个队伍是一个班,班长肯定会叫全体士兵先排队点名,每个士兵会从头至尾进行报数,1、2、3。。。这样最后一名士兵所报的数就是当前这个班的总人数(假设这个班共有10名士兵),班长从报数中一听就知道10名士兵是否全部到齐。在这里,这个班每个士兵不同的姓名就组成了一个数组,由“张三、李四、王五、赵六”等许多姓名构成。这些姓名也可以看成是单个变量,比如变量a=“张三”;b=“李四”....,而数组就是由众多单变量组合而来。

数组概念再理解:

数组是一组具有相同类型和名称的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,这个编号叫做下标,我们可以通过下标来区别这些元素。数组元素的个数有时也称之为数组的长度。

一般情况下,数组的元素类型必须相同,可以是前面讲过的各种基本数据类型。但当数组类型被指定为变体型时,它的各个元素就可以是不同的类型。

数组和变量一样,也是有作用域的,按作用域的不同可以把数组分为:过程级数组(或称为局部数组)、模块级数组以及全局数组。

连续可索引的具有相同内在数据类型的元素所成的集合,数组中的每一元素具有唯一索引号。更改其中一个元素并不会影响其它元素。

"第一个数组实例:用数组来表示10名士兵,并判断变量aa是否数组:

Private Sub CommandButton1_Click()

Dim aa As Variant

"定义变量aa为变体形式

"给变量aa赋值,其中array函数后面跟了10个参数,字符串必需用双引号括起来;各个字符串之间用逗号隔开

aa = Array(”士兵1”, “士兵2”, “士兵3”, “士兵4”, “士兵5”,, “士兵6”, “士兵7”, “士兵8”, “士兵9”, “士兵10”)

"下面这句判断变量aa是不是数组,用isarray函数,括号中的参数是变量aa

If IsArray(aa) Then MsgBox “变量aa是一个数组”

"如果IF条件为真true,就会弹出消息框,如果为假false,退出程序

End Sub

**********************************************************************************

"第二个数组实例:用数组来表示10名士兵,并从数组中取出元素值:

Private Sub CommandButton1_Click()

aa = Array(”士兵1”, “士兵2”, “士兵3”, “士兵4”, “士兵5”,, “士兵6”, “士兵7”, “士兵8”, “士兵9”, “士兵10”)

MsgBox “数组aa中第一个元素是:” & Space(5) & aa(0) "从数组aa中取出第一个元素:

End Sub

"*******************************************************************************

"上面代码第二句中的 aa(0)是什么意思呢?

"aa 就是数组名,你可以更改它的名字,甚至可以用你的姓名来替代

"括号中的 0 是什么呢?

"数组下标包括下界、上界

"除非你特别指定,比如在程序开头第一行添加了Option base 1(注意不是位于某个过程的开头,而是当前VBE界面代码窗口的第一行)

"或者是定义时采用aa(1 to 10)这种形式,否则默认下界从0开始

"*******************************************************************************

数组表示方法:

"用来表示数组元素的符号由变量名、圆括号以及括号中的所需元素的索引号组成。在下面的示例中,

"第一条语句创建一个 Variant 的变量 xx。第二条语句将一个数组赋给变量 xx。共有3个元素:100,200,300

"第三条语句将该数组的第二个元素的值赋给另一个变量。第四句显示数组中的第2个元素,即200

Sub aaa()

Dim xx As Variant

xx = Array(100, 200, 300)

b = xx(1)

"注意数组具有下标,用来标记每个元素的位置号,默认从0开始,如下标为0,是第1个元素,1就是第二个元素

MsgBox b

End Sub

"使用 Array 函数创建的数组的下界受 Option Base 语句指定的下界的决定,除非 Array 是由类型库(例如 VBA.Array )名称限定。

"如果是由类型库名称限定,则 Array 不受 Option Base 的影响。

"注意没有作为数组声明的 Variant 也可以表示数组。除了长度固定的字符串以及用户定义类型之外,

"Variant 变量可以表示任何类型的数组。尽管一个包含数组的 Variant 和一个元素为 Variant 类型的数组在概念上有所不同,

"但对数组元素的访问方式是相同的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值