工具/材料:Microsoft Office Excel2016版,Excel表格。
1、首先选中Excel表格中要数组赋值的单元格内容。
2、然后在该界面中,点击“插入”里“表单控件”里“按钮”选项。
3、再者在该界面中,在表格中生成按钮控件,修改控件名称。
4、其次在该界面中,点击“查看代码”选项。
5、继续在VBA界面中,输入定义一维数组的语句。
6、然后在VBA界面中,输入给单元格赋值一维数组的语句。
7、最后在该界面中,单元格里成功显示数组赋值结果。
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开始计数的。
答:二维数组赋值有两种方法,
第一种方法是单元格区域装入二维数组,如:
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
'向VBA数组中写入数据 '1、按编号(标)写入和读取 Sub t1() '写入一维数组 Dim x As Integer Dim arr(1 To 10) arr(2) = 190 arr(10) = 5End Sub Sub t2() '向二维数组写入数据和读取 Dim x As Integer, y As Integer Dim arr(1 To 5, 1 To 4) For x = 1 To 5 For y = 1 To 4 arr(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 - 1 ReDim arr(1 To row) For x = 1 To row arr(x) = Cells(x, 1)Next xStopEnd Sub '3、批量写入 Sub t4() '由常量数组导入Dim arrarr = Array(1, 2, 3, "a")StopEnd Sub Sub t5() '由单元格区域导入Dim arrarr = Range("a1:d5")StopEnd Sub
字符串数组的定义:
Dim arr(1 to 3) as string
如此定义,但是不能直接给数组赋值
如果想直接给数组直接赋值,需要如下操作:
Dim arr() as Variant
arr=Array("a","b","c")