2014-02-20 83 views
0

在Excel VBA代碼中,定義變量時,它是如何使代碼能夠定義具有多個值範圍的整數變量的?多維整數

例如:

Dim iCount(a to b, x to y) as Integer 
+1

使用這一個:'昏暗ICOUNT()作爲Integer'然後(初始化的a,b,X,Y後)'REDIM ICOUNT(A到B,X到Y)' –

回答

1

有在VBA兩種類型的陣列。固定陣列,其中所述限制是服用的未知的陣列B中定義爲

N = 100 
Dim A() as Long 
ReDim(1 to N) 
... 
Erase A 

類似地,對於多維數組

Dim A() as Long 
ReDim(1 to N, 1 to M) 
... 
Erase A 

現在對於一個例子,定義爲

Dim A(1 to 100) as Long 

常數動態數組大小,並通過給每個值加1來創建一個數組A.

' Given a 1D array B() make a copy into A() 
Dim A() as Long 
Dim i_low as Long, i_high as Long, i as Long 
' Discover array bounds of B 
i_low = LBOUND(B,1) : i_high = UBOUND(B,1) 
' Declare array size 
ReDim A(i_low to i_high) 
For i=i_low to i_high 
    ' Calculate each element of the new array 
    A(i) = B(i) + 1 
Next i 
+0

您好ja72,感謝你的反應,因爲我確信我背後的曲線,但試圖學習更多。看一看固定數組的種類,我確定變量定義爲一個數組有多種用法,但是在VBA中這個功能的主要目的是允許將相同的變量用於多個值?我可以看到這樣做的潛在好處是限制代碼中所需的變量數量。 – Michael

+0

添加到最後一個註釋,當有一個變量設置爲數組時,如果我需要代碼來使用數組中的每個潛在值,比如在循環中,是否必須爲每個值創建一行代碼在代碼中使用數組的值還是有自動循環數組中的值的方法? – Michael

+0

要遍歷數組的值,您需要代碼如'For i = 1到N',其中'N'或者已知,或者使用'UBound()'函數計算。 – ja72