vba数组
上一节中学习了变量类型、变量声明和赋值使用、作用域等内容,在声明变量的过程中会出现一次性需要声明多个同类型变量的情况,如果还是按照常规的方法,那么程序就比较杂乱,为了一次性声明多个同类型变量,引入了数组的概念。数组就是同类型多个变量的集合,也是变量。数组声明的语法规则如下:
dim 数组名 (a to b) as 数据类型
如:dim 七6班 (1 to 50 )as string ‘声明一个数组名为七6班数据容量为50的string变量,即声明了50个变量名为七6班1、2......50的string类型变量
声明数组时,也可以用一个自然数n指定数组长度,该自然数作为数组的最大索引号,但数组默认索引号是0,数组长度为n+1,如:
dim arr(49)as string ”数组长度为50,如果在模块的第一句写上option base 1,尽管只使用一个自然数确定数组长度,数组起始索引号也是1。
如:sub sztest()
dim arr (1 to 10)as integer,i as integer
for i = 1 to 10
arr(i)= i ”arr数组赋值
next
end sub
多维数组
上面主要说明了一维数组,实际运用过程中还存在二维、三维......数组,多维数组声明和使用同一维数组类似,如:
dim arr1(1 to 10,1 to 10)as integer 或 dim arr1(9,9)as integer
dim arr2(1 to 10,1 to 10,1 to 10) as string 或dim arr2 (9,9,9) as string
声明动态数组
如果在声明数组时,不能确定数组的长度时,可以在首次定义数组时括号为空,写成:
dim 数组名称()as string
然后在程序中使用redim语句重新制定数组长度。
如:sub dtsz()
dim arr()as string
dim n as long
n = APPliC++ation.worksheetfunction.count(range("a:a")) “统计A列有多少个非空单元格
redim arr(1 to n) as string ”重新定义数组大小
end sub
注意:已经定义大小的数组同样可以使用redim语句重新指定它的大小。
关于数组的一些知识
1、将某个单元格区域的值直接存储到数组里,可以直接把单元格区域的值赋值给变量名。
如:sub rngarr()
dim arr as variant
arr = range("a1:c3").value
range(“e1:g3”).value = arr
end sub
2、将数组中的元素赋值给单元格
将数组中某个元素赋值给某一单元格。如:range(“a1”).value = arr(1)
将整个数组元素赋值给单元格区域。
如:Sub arr_rng()
Dim arr() As Variant
arr = Array(2, 4, 8)
Worksheets("sheet2").Range("a3:c3").Value = arr
End Sub
如: Sub arr_rng()
Dim arr() As Variant
arr = Array(2, 4, 8)
Worksheets("sheet2").Range("a3:a5").Value = WorksheetFunction.Transpose(arr)
End Sub
如:Public Sub arr_rng()
Dim arr(1 To 2, 1 To 3) As Variant
arr(1, 1) = 1
arr(1, 2) = "张勇"
arr(1, 3) = "男"
arr(2, 1) = 2
arr(2, 2) = "林梅"
arr(2, 3) = "女"
worksheets("sheet2").range("A1:C2").value = arr
End Sub
相关阅读
在原生中的JavaScript中,获取标签数组的长度(如"li"的个数) var liLists=document.getElementsByTagName("li"); console.log(liLi
本博客主要内容为 “小甲鱼” 视频课程《带你学C带你飞》【第一季】 学习笔记,文章的主题内容均来自该课程,在这里仅作学习交流。在
例如: 序号 1 2 3 4 5 6 7 8 模式串 a b a a b c a c next值 0 1 1 2 2 3 1 2 next数组的求解方法是: 第一位的next值为0,第二位的n
如果希望保存一组有相同类型的数,可以使用数组。今天天气不错,来复习复习Java数组。数组的定义和和内存分配Java中定义数组的语法有
先介绍一下什么是约瑟夫环问题:就是N个人围成一圈,从开头(下标为0)报数,报到你设置的Number就要出局,几轮下来后剩下最后一个人输出这