分享

excel的vba数组 - 中华统计学习网

 雪域じ☆ve狼 2010-05-13
  什么是vba数组?先让我们从字面来看一下它的意思:“数:数据;组:组合”。从字面很直观地看出,数组就是N个数据的组合,如果某个变量只包含一个数据,就不是数组,只能是一个普通的变量。
  有人把数组比喻为一串用线穿起来的辣椒,也有人比喻为班级里一群学生。
  如果你当过兵,每天训练前肯定会先做队伍集合,如果这个队伍是一个班,班长肯定会叫全体士兵先排队点名,每个士兵会从头至尾进行报数,123。。。这样最后一名士兵所报的数就是当前这个班的总人数(假设这个班共有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 IsArrayaa 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中第一个元素是:” & Space5 & aa0) '从数组aa中取出第一个元素:
  End Sub
  '*******************************************************************************
  '上面代码第二句中的 aa0)是什么意思呢?
  'aa 就是数组名,你可以更改它的名字,甚至可以用你的姓名来替代
  '括号中的 0 是什么呢?
  '数组下标包括下界、上界
  '除非你特别指定,比如在程序开头第一行添加了Option base 1(注意不是位于某个过程的开头,而是当前VBE界面代码窗口的第一行)
  '或者是定义时采用aa1 to 10)这种形式,否则默认下界从0开始
  '*******************************************************************************
  数组表示方法:
  '用来表示数组元素的符号由变量名、圆括号以及括号中的所需元素的索引号组成。在下面的示例中,
  '第一条语句创建一个 Variant 的变量 xx。第二条语句将一个数组赋给变量 xx。共有3个元素:100200300
  '第三条语句将该数组的第二个元素的值赋给另一个变量。第四句显示数组中的第2个元素,即200
  Sub aaa()
  Dim xx As Variant
  xx = Array100 200 300
  b = xx1
  '注意数组具有下标,用来标记每个元素的位置号,默认从0开始,如下标为0,是第1个元素,1就是第二个元素
  MsgBox b
  End Sub
  '使用 Array 函数创建的数组的下界受 Option Base 语句指定的下界的决定,除非 Array 是由类型库(例如 VBAArray )名称限定。
  '如果是由类型库名称限定,则 Array 不受 Option Base 的影响。
  '注意没有作为数组声明的 Variant 也可以表示数组。除了长度固定的字符串以及用户定义类型之外,
  'Variant 变量可以表示任何类型的数组。尽管一个包含数组的 Variant 和一个元素为 Variant 类型的数组在概念上有所不同,
  '但对数组元素的访问方式是相同的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多