vba中的数组知识汇总

  • 定义数组变量

dim arr( 1 to 10)定义了一个可以容纳10个元素的一维数组变量arr,

dim arr(1 to 10,1 to 2) 定义了一个可以容纳20个元素的二维数组变量arr。

  • 获取数组指定维度的上下标

LBound 和 UBound 函数可以分别获取数组指定维度的下标和上标。

  • 定义动态数组

dim arr() 定义了一个动态数组变量,变量的名称为arr。当需要给该动态数组赋值时可以使用

redim Preserve arr(k) 这样每次赋值的元素都不会消失,可以保留。

array函数可以返回一维数组,其中默认情况下数组的下标是以0开始。

如下所示:

arr = Array(1, 2, 3)
MsgBox arr(0)

filter函数可以对一维数组的元素执行模糊筛选,返回满足条件的子元素数组。

如下所示:

Sub QQ1722187970()
    arr = Array("abc", "a", "ab", "abcd", "dg")
    '提取arr数组中含有ab字符的子元素数组
    arr1 = VBA.Filter(arr, "ab")
    'arr1数组中将包含有元素"abc","ab","abcd"
End Sub

filter函数 的语法 为Filter(sourcesrray, match[, include[, compare]])

第三参数include可以设置为true 或者false,如果是省略或者true,表示提取满足条件的子元素数组。如果是false,表示不满足条件的子元素数组。

如下所示:

Sub QQ1722187970()
    arr = Array("abc", "a", "ab", "abcd", "dg")
    '提取arr数组中不含有ab字符的子元素数组
    arr1 = VBA.Filter(arr, "ab", False)
    'arr1数组中将包含有元素"a","dg"
End Sub

Split函数

split函数把字符串按照分隔符拆分成以序号0开始的一维数组。

如以下代码所示split函数拆分的数组含有4个元素,分别是arr(0)、arr(1)、arr(2)、arr(3)。

Sub qq1722187970()
    s1 = "a,b,c,d"
    arr = Split(s1, ",")
End Sub

通过split函数的第3个参数,还可以设置返回的数组结果。

Erase语句

erase语句可以清空动态数组的存储空间,重新初始化数组。

       

发表评论