###vba動態陣列簡單應用
動態陣列在vba中,用於篩選大資料是比較好用的.當一行資料滿足篩選要求時,將該行資料寫入到新的陣列中,逐維增加,最後再將這個新的陣列輸出到**.
動態陣列和一靜態陣列定義不同
靜態陣列定義:
dim arr
動態陣列定義:
dim arr()
重新定義動態陣列:
redim arr(1 to 5,2 to x)
保留原陣列中的內容重新定義動態陣列:
redim preserve arr(1 to 5, 2 to x)
*注意:乙個二維的動態陣列的第一維是不可以重新定義的,只能變動第二維.*
由於動態陣列只能增加第二維,所以在複製原二維陣列時,就要求轉換維度或交換維度中的資料.
動態陣列應用舉例:
``sub 拆分**()
dim arr '原陣列,用於儲存原**中資料
dim arrnew() '動態陣列,用於儲存符合要求的資料
dim arrparameter '存放篩選內容的資料
dim xdimension as long '一維數(行數)
dim ydimension as integer '二維數(列數)
dim rowpara as integer '篩選要執行的次數
dim addrow as long '新陣列的行數
arr=sheet1.ragne(「a1」).currentregion '寫入sheet1中的資料到arr陣列
arrparameter =sheet2.range(「a1」).currentregion '寫入sheet2中的要篩選的內容
for rowpara= 1 to ubound(arrparameter) '逐次對比篩選內容
for xdimension = 2 to ubound(arr) '逐行對比原資料內容
if arrparameter(rowpara, 1) = arrx(xdimension, 7) then '判斷篩選條件與原表中內容是否一致,數字7是**中的特定列
addrow = addrow + 1
redim preserve arrnew(1 to ubound(arr,2), 1 to addrow) '滿足條件後增加一行新資料
for ydimension= 1 to ubound(arr, 2) '通過迴圈寫入行中的每一專案
arrnew(ydimension, addrow) = arrx(xdimension ,ydimension) '通過交換維度的方式寫入到新的組:arrnew(列,行)=arr(行,列)
next ydimension
end if
next xdimension
next rowpara
end
vba 陣列(動態陣列)
主要內容 本文章主要介紹vba中,陣列的使用,特別介紹動態陣列的使用,並有簡單事例,幫助理解。陣列是我們經常用到的儲存資料的一種媒介,他到底是什麼呢?陣列是具有相同資料型別並且共享乙個名字的一組變數的集合。通俗的說,陣列是變數。陣列的宣告 可以用dim語句或者public語句生命陣列。如 dim p...
如何動態獲取VBA變數動態型別(VBA基礎知識)
在使用vba變數的某些時候,我們需要獲知變數的儲存範圍,所以如何獲取變數型別是乙個重要點。通過變數型別,我們就很容易的獲取它的位元組數,從而卻動它的儲存範圍,就象c c 所用的sizeof var type 那樣。那麼擺在初學者面前的頭乙個問題就是如何獲得變數型別呢?幸運的是,vba提供了varty...
VBA應用例項
在這裡我記錄了常用的技巧。1 常用引用excel物件的方法 不完整,不斷新增 sheets 指定 名 activesheet 當前焦點的 activeworkbook 當前焦點的工作簿,即excel檔案 下面兩行用於引用指定 dim ws as excel.worksheet set ws shee...