第1个回答 2012-10-31
Excel VBA数组赋值主要分为一维数组赋值和二维数组赋值两方面来讲,多维数组赋值只要沿用二维的方法即可。在将vba 数组赋值的方法之前,先说下为什么要用数组的方法来写程序吧。使用excel vba数组赋值的主要目的是为了提高程序运行效率,相信用vba编程的童鞋都遇到过程序运行过慢的问题,其中最主要的一个原因就是excel vba程序从头至尾都在操作对象。用excel vba对数组进行赋值,即是将对象的值及相关属性,全部存储到内存中,然后在内存里执行其他程序,这样速度会提高非常多。好了,下面说怎么给excel vba数组进行赋值吧EXCEL VBA一维数组赋值的方法int Arr(5)={1,2,3,4,5}说明:括号中的5是指数组长度,固定数组在最开始确定好数组长度,使内存分配好空间,免去重定义数组长度,效率会高些。如果不定义数组长度的话,后期可以使用redim来更改。EXCEL VBA二维数组赋值的方法Arr = [{"a","b"; "e","f" ;"i","j";"m" ,"n"}] Arr = Range(Sheets("文本1").Range("a1"), Sheets("文本1"). Range("a" & Cells(65536, 1).End(xlUp).Row))说明:两种赋值方法如上,一个是赋予固定值,另一个是将某区域内数值全部导入。EXCEL VBA重新定义数组的方法ReDim Preserve Arr(j)最后说下excel vba二维数组取数据上限的程序,如下,不过要先确定好你的数组是从0开始计数还是从1开始计数的,上面所讲数组赋值的例子都是从1开始计数的。
第2个回答 2013-08-26
答:二维数组赋值有两种方法,
第一种方法是单元格区域装入二维数组,如:
Arr=range("a1:b19")就可以把单元格区域的值装入数组arr
第二种就是通过循环装入,一个个数值装入。例:
向二维数组写入数据和读取
Dim x As Integer, y As Integer
Dim arr(1 To 5, 1 To 4)
For x = 1 To 5
第3个回答 推荐于2017-09-27
'向VBA数组中写入数据'1、按编号(标)写入和读取Sub t1() '写入一维数组Dim x As IntegerDim arr(1 To 10)arr(2) = 190arr(10) = 5End SubSub t2() '向二维数组写入数据和读取Dim x As Integer, y As IntegerDim arr(1 To 5, 1 To 4)For x = 1 To 5For y = 1 To 4arr(x, y) = Cells(x, y)Next yNext xMsgBox arr(3, 1)End Sub'2、动态数组Sub t3()Dim arr()Dim rowrow = Sheets("sheet2").Range("a65536").End(xlUp).row - 1ReDim arr(1 To row)For x = 1 To rowarr(x) = Cells(x, 1)Next xStopEnd Sub'3、批量写入Sub t4() '由常量数组导入Dim arrarr = Array(1, 2, 3, "a")StopEnd SubSub t5() '由单元格区域导入Dim arrarr = Range("a1:d5")StopEnd Sub本回答被提问者采纳
第4个回答 推荐于2017-09-05
字符串数组的定义:
Dim arr(1 to 3) as string
如此定义,但是不能直接给数组赋值
如果想直接给数组直接赋值,需要如下操作:
Dim arr() as Variant
arr=Array("a","b","c")