美文网首页
29、[VBA入门到放弃笔记] 数组基础

29、[VBA入门到放弃笔记] 数组基础

作者: 叶知行 | 来源:发表于2017-06-20 15:57 被阅读66次
    • 什么是数组?
      • 在Excel里数组就是一个自由缩放的‘工作表‘,可以自定义决定大小(几行几列)。但不能只是一个单元格,因为‘工作表’是单元格集合。
    • ‘工作表’用来存储数据,数组同样用来存储数据。数组是存放在内存当中的,在代码当中操作数组要比操作工作表快很多很多。

    • 数组的的维度
      • 数组一般有一维数组和二维数组,当然还有三维、四维......但一般只用到二维,其他都用不到,不需要纠结。

    • 数组的声明
      • 1、数组的下界如果缺省默认从0开始。

    Dim arr(2)

        - 声明一个含有3个元素的一维数组,即arr(0),arr(1),arr(2),这里看到,数组的起始是默认由0开始的。
    
     - 2、声明数组的数据类型
    

    Dim arr(2) As Integer

        - 声明一个含有3个元素的一维数组,数据类型为整型。如果没声明数据类型,自然就是Variant类型,和声明变量一个道理。
    
      - 3、数组的边界
    
    

    Dim arr(1 To 10)

      - 声明一个含有10个元素的一维数组,数组的索引从1(下界)开始,上界是10。
    
    

    Dim arr(1 To 10, 1 To 20)

     - 声明一个10行20列的二维数组。二维数组相对于上面的一维数组,有2个维度,自然每个维度都有各自的边界。
    先看1 to 10,这是二维数组的第一维,下界是1,上界是10,也就是10行的范围;
    再看1 To 20,这是二维数组的第二维,下界是1,上界是20,也就是20列的范围。
    这个数组如果输出到工作表上,就是一个10行20列大小的单元格区域(一个微型的‘工作表’)
    
    ***
    - 4、获取数组的上界和下界
    
    - Lbound函数:获取数组的下界
    - Ubound函数:获取数组的上界
    
    

    Sub 数组()
    Dim ar1(2)
    Dim ar2(1 To 5)
    Dim ar3(1 To 5, 1 To 10)

    a = LBound(ar1)
    b = UBound(ar1)
    
    c = LBound(ar2)
    d = UBound(ar2)
    
    '二维数组ar3有2个维度
    e = LBound(ar3, 1)'第一个维度的下界
    f = UBound(ar3, 1)'第一个维度的上界
    
    g = LBound(ar3, 2)'第二个维度的下界
    h = UBound(ar3, 2)'第二个维度的上界
    

    End Sub

    
    ![](https://img.haomeiwen.com/i4364421/d82497206c52b552.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    - 由上可以知道Lbound和Ubound的写法是:Lbound(数组名称,维度);如果维度是1,可以省略,如e = LBound(ar3, 1)相当于e = LBound(ar3),但二维度及以上不能省略。
    - 另外注意一维数组和二维数组元素的表示方法不同,一维数组,如ar1(0),ar2(3)....二维数组,如ar3(1,1),ar3(2,4)这和cells(行,列)表示方法其实是一样的原理。
    - 可以这么认为:
       - 二维数组就是一个‘类工作表’,可以当成一张工作表操作,数组中的元素就是单元格。
       - 一维数组,可以认为是‘工作表’中的一行或一列,数组中的元素也就是单元格。但要注意的是:
       - 【工作表中的一行或者一列并不是一维数组,而是二维数组,这里要记住的是,凡是数组赋值来源于工作表(单元格区域)的都是二维数组,给数组赋值的时候就会知道。】
    ***

    相关文章

      网友评论

          本文标题:29、[VBA入门到放弃笔记] 数组基础

          本文链接:https://www.haomeiwen.com/subject/qwsoqxtx.html