如何将⼀个数组的值赋给另⼀个数组_VBA数组与字典解决⽅
案第34讲:数组的传递...
⼤家好,今⽇我们继续讲解VBA数组与字典解决⽅案,今⽇讲解的是第34讲:数组的传递。在应⽤数组的时候,我们往往需要要把数组的值由⼀个数组传递给另外⼀个数组,就如同变量的传递⼀样:
A=B '把B值赋给A
C=A '把A值赋给C
如上例,就完成了把值的传递的过程,分别把B的值传递给了A;把A的值传递了B,那么数组是否也可以呢?我们看下⾯的数组传递:
下⾯看我给出的代码:
Sub MyNZsz_34() '第34讲 如何把⼀个固定数组的值传递给另外⼀个数组
'直接赋值是不对的
Sheets("34").Select
Dim arr1(1) As Integer '定义⼀个⼀维固定数组arr1(1)
Dim arr2(1) As Integer '定义⼀个⼀维固定数组arr2(1)
arr1(0) = 1 '给arr1(1) 的数组元素0赋值为1
arr1(1) = 2 '给arr1(1) 的数组元素0赋值为2
arr2 = arr1 '讲数组1传递给数组2
MsgBox (arr2(1)) '提⽰数组2的元素1的值
End Sub
上述代码的过程要完成的是⾸先定义两个⼀维数组arr1(1)和 arr2(1);然后先给其中的⼀个数组arr1(1)赋值,这个数组共⽤两个元素分别赋值为1,2;然后我们⽤普通变量赋值的⽅法把数组arr1(1)赋值给arr2(1);最后提⽰数组2的元素1的值,那么是否会弹出对话框提⽰为1呢?
我们看看代码的截图和代码的运⾏:
1 代码截图
2 运⾏截图:
这个时候会提⽰我们不能这样给数组赋值。由此我们可以看出:对于给定的2 个静态数组不能相互赋值,否则将出现编译错误:不能给数组赋值。
那么要如何完成数组的值由⼀个数组传递给另外⼀个数组呢?常⽤的⽅法:①将静态数组赋值给动态数组②将静态数组赋值给⼀个变体变量③再有就是循环的⽅法。对于循环的⽅案⽐较简单,不再多说,这⾥着重讲解前两个⽅法。
对于动态数组我们在之前的讲解中已经讲了很多了,对于变量体⼤家要加强理解:数组可以⽤Variant 变体变量获取⼀组单元格的值,公式等,当不包括单元格地址。⼤家要理解Variant 变体变量的意义,当使⽤数组的这种赋值⽅法的时候⼀定要定义这个变量为Variant 变体变量。
对于上⾯给出的代码,我下⾯修正:
Sub MyNZsz_34_1() '第34讲 如何把⼀个固定数组的值传递给另外⼀个数组
'直接赋值是不对的
Sheets("34").Select
Dim arr1(1) As Integer '定义⼀个⼀维固定数组arr1(1)
Dim arr3() As Integer
Dim arr4 As Variant
arr1(0) = 1 '给arr1(1) 的数组元素0赋值为1
arr1(1) = 2 '给arr1(1) 的数组元素0赋值为2
ReDim arr3(1)
arr3 = arr1 '讲数组1传递给数组2
arr4 = arr1
怎么给数组赋值
MsgBox "动态数组赋值后:" & arr3(1) '提⽰数组3的元素1的值
MsgBox "Variant赋值后:" & arr4(1) '提⽰数组4的元素1的值
End Sub
下⾯看代码的截图;
代码的运⾏:
今⽇内容回向:
1 数组的值如何传递?
2 如何理解变体变量?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。