VBA動態陣列簡單應用

2021-10-16 10:16:30 字數 1419 閱讀 7608

###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...