VBA陣列(十四)

2022-06-01 18:06:08 字數 4072 閱讀 2882

我們都知道,乙個變數是乙個儲存值的容器。 有時,開發人員希望一次可以在乙個變數中儲存多個值。 當一系列值儲存在單個變數中時,則稱為陣列變數。

陣列宣告的方式與宣告變數相同,只是陣列變數的宣告使用括號。 在下面的例子中,括號裡提到了陣列的大小。參考以下示例 -

'

method 1 : using dim

dim arr1() '

without size

'method 2 : mentioning the size

dim arr2(5) '

declared with size of 5

'method 3 : using 'array' parameter

dimarr3

arr3 = array("

","orange

","grapes

")

在上面**中,

通過為每個要分配的值指定乙個陣列索引值,將這些值分配給陣列。它可以是乙個字串。

例子

新增乙個模組並新增以下** -

private

subconstant_demo_click()

dim arr(5

) arr(

0) = "1"

'number as string

arr(1) = "

vbscript"'

string

arr(2) = 100

'number

arr(3) = 2.45

'decimal number

arr(4) = #10/07/2013# '

date

arr(5) = #12.45 pm# '

time

msgbox("

value stored in array index 0 :

" & arr(0

))

msgbox("

value stored in array index 1 :

" & arr(1

))

msgbox("

value stored in array index 2 :

" & arr(2

))

msgbox("

value stored in array index 3 :

" & arr(3

))

msgbox("

value stored in array index 4 :

" & arr(4

))

msgbox("

value stored in array index 5 :

" & arr(5

))end sub

當執行上面的函式時,它會產生下面的輸出。

value stored in array index 0 : 1

value stored

in array index 1

: vbscript

value stored

in array index 2 : 100

value stored

in array index 3 : 2.45

value stored

in array index 4 : 7/10/2013

value stored

in array index 5 : 12:45:00

pm

陣列不僅限於乙個維度,但它們最多可以有60個維度。 二維陣列是最常用的陣列。

例子在下面的例子中,乙個多維陣列被宣告為34列。

private

subconstant_demo_click()

dim arr(2,3) as variant '

which has 3 rows and 4 columns

arr(0,0) = "

"arr(

0,1) = "

orange

"arr(

0,2) = "

grapes

"arr(

0,3) = "

"arr(

1,0) = "

cucumber

"arr(

1,1) = "

beans

"arr(

1,2) = "

carrot

"arr(

1,3) = "

tomato

"arr(

2,0) = "

potato

"arr(

2,1) = "

sandwitch

"arr(

2,2) = "

coffee

"arr(

2,3) = "

nuts

"msgbox("

value in array index 0,1 :

" & arr(0,1

))

msgbox("

value in array index 2,2 :

" & arr(2,2

))end sub

當執行上面的函式時,它會產生下面的輸出。

value stored in array index : 0 , 1

: orange

value stored

in array index : 2 , 2 : coffee

redim語句用於宣告動態陣列變數並分配或重新分配儲存空間。

redim [preserve] varname(subscripts) [, varname(subscripts)]

引數說明

例子在下面的例子中,陣列已經被重新定義,當陣列的現有大小發生改變時,這些值被儲存下來。

注意 - 調整陣列的大小時,刪除的元素中的資料將丟失。

private

subconstant_demo_click()

dim a() as

variant

i = 0

redim a(5

) a(

0) = "

xyz"

a(1) = 41.25

a(2) = 22

redim

preserve a(7

)

for i = 3to7

a(i) =i

next

'to fetch the output

for i = 0

toubound

(a)

msgbox

a(i)

next

end sub

當執行上面的函式時,它會產生下面的輸出。

xyz

41.25223

4567

vbscript中有各種內建函式,可以幫助開發人員有效地處理陣列。 下面列出了與陣列一起使用的所有方法。方法名稱來詳細了解它們如何應用。

編號方法描述1

lbound

它返回乙個整數,對應於給定陣列的最小下標。

2ubound

它返回乙個整數,對應於給定陣列的最大下標。

3split

它返回乙個包含指定數量值的陣列。根據分隔符分割。

4join

它返回乙個包含陣列中指定數量的子串的字串。這是split方法的乙個完全相反的功能。

5filter

它返回乙個基於零的陣列,該陣列包含基於特定過濾條件的字串陣列的子集。

6isarray

它返回乙個布林值,表示輸入變數是否是乙個陣列。

7erase

為陣列變數恢復分配的記憶體。

vba 陣列(動態陣列)

主要內容 本文章主要介紹vba中,陣列的使用,特別介紹動態陣列的使用,並有簡單事例,幫助理解。陣列是我們經常用到的儲存資料的一種媒介,他到底是什麼呢?陣列是具有相同資料型別並且共享乙個名字的一組變數的集合。通俗的說,陣列是變數。陣列的宣告 可以用dim語句或者public語句生命陣列。如 dim p...

vba 陣列 陣列引數

關於賦值 我看了很多本書都沒有看到這樣子的,包括官方文件,所以我就寫了下來。sub a dim a dim c a array 1,2,3,4 這裡a後面的 可以給也可以不給 c a end sub寫法一 sub a paramarray a as variant paramarray 可以用byr...

VBA陣列賦值

先說一下,剛才乙個錯誤的操作,連儲存的草稿都沒了,這也太懸了。以後還是在本地寫好了再放上來。陣列是這樣賦值的 dim a2 10 as integer 10是可以使用的最大上標,這和c語言不太一樣 dim a3 2 to 10 as integer 也可以定義下標 dim a1 as integer...