数组字典_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 如何理解變體變量?
總結
以上是生活随笔為你收集整理的数组字典_VBA数组与字典解决方案第34讲:数组的传递的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据量大的sql怎么做优化_搜索引擎关键
- 下一篇: php static_castunsig