VBA代码解决方案的第59讲内容:如何在代码运行时创建数组

论坛 期权论坛 期权     
VBA语言专家   2019-7-27 14:44   3841   0
点击上面蓝色字体关注公众号


大家好,我们今日继续讲解VBA代码解决方案的第59讲内容:如何在代码运行时创建数组
。数组大家并不陌生,在之前我讲过很多了,估计详细阐述数组的只有我这个平台可以找到了,今日讲的是在VBA中代码运行的时候如何创建数组,为了实现这个目的,我们需要梳理一下下面的几个知识点:
1创建数组函数:Array函数。这个函数返回一个包含数组的Variant,语法如下:Array(arglist)
Arglist参数是一个用逗号隔开的值表,这些值用于给Variant所包含的数组的各元素赋值。如果不提供Arglist参数,则创建一个长度为 0 的数组。使用Array函数可以在代码运行时创建数组并把一系列数据保存在数组中,
2 LBound函数和UBound函数取得数组的最小和最大下标。
LBound函数:返回一个Long型数据,其值为指定数组维可用的最小下标,
语法如下:LBound(arrayname[, dimension])
UBound函数:返回一个Long型数据,其值为指定数组维可用的最大下标,
语法如下:UBound(arrayname[, dimension])
参数arrayname是必需的,数组变量的名称。
参数dimension是可选的,指定返回哪一维的下界,1表示第一维,2表示第二维,如此类推。默认为1。
特别注意点:UBound函数与LBound函数一起使用,可以用来确定数组的大小。

3  Option Base数组下界的声明:Option Base用来声明数组下标缺省下界的函数,在模块级别中使用。由于下界的缺省设置是 0,因此无需使用 Option Base 语句。如果使用该语句,则必须写在模块的所有过程之前。一个模块中只能出现一次 Option Base,且必须位于带维数的数组声明之前。注意 Dim、Private、Public、ReDim 以及 Static 语句中的 To 子句提供了一种更灵活的方式来控制数组的下标。不过,如果没有使用 To 子句显式地指定下界,则可以使用 Option Base 将缺省下界设为 1。使用 Array 函数或 ParamArray 关键字创建的数组的下界为 0;Option Base 对 Array 或 ParamArray 不起作用。Option Base 语句只影响位于包含该语句的模块中的数组下界。

示例代码如下:
Option Base 1
  SubMyarr()
     Dim arr As Variant
     Dim i As Integer
     arr = Array("A111", "A222", "A333", "A444","A555", "A666", "A777", "A888")
     For i = LBound(arr) To UBound(arr)
         Sheets("kk").Cells(i, 1) = arr(i)
    Next
  EndSub
代码解析:
Arr过程使用Array函数创建一个数组用来保存数据并将其写入到工作表的单元格区域。
第1行代码使用Option Base语句声明数组下标的缺省下界为1,数组下标的缺省下界默认为0。
第5行代码使用Array函数创建数组用来保存数据。
第6行代码使用LBound函数和UBound函数取得数组的最小和最大下标。
第7行代码确定数组的大小后使用For...Next语句遍历数组元素并将数组元素依次写入到工作表的A列单元格中。
代码窗口:


运行后的:


今日内容回向:
1 创建数组用什么函数?
2 数组的上下界是如何取得的?

  
分享成果,随喜正能量

长按二维码  关注公众号


长按二维码  关注VBA群






分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:200
帖子:40
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP