當前位置:成語大全網 - 書法字典 - VB如何聲明數組?

VB如何聲明數組?

dim counters(14)作為整數“15”元素。

dim Sums(20)為Double‘21元素。

若要創建公共數組,請直接用Public替換Dim。

整數形式的公共計數器(14)

雙精度公共和(20)

在此過程中,同壹語句使用了Dim:

將計數器(14)顯示為整數

雙精度點心(20)

第壹個聲明創建了壹個包含15個元素的數組,索引號範圍為0到14。第二個聲明創建了壹個包含21個元素的數組,索引號範圍為0到20。默認下限為0。

若要指定下限,請使用關鍵字to(Long數據類型)顯式提供下限:

將計數器(1到15)顯示為整數

字符串形式的點心和(100到120)

包含其他數組的數組。

私有子命令1_Click()

“Dim intX As Integer”聲明了壹個計數器變量。

聲明並放置壹個整數數組。

dim countersA(5)為整數

對於intX = 0至4

countersA(intX)= 5

下壹個intX

聲明並放置壹個字符串數組。

將countersB(5)設為字符串

對於intX = 0至4

countersB(intX)=“hello“

下壹個intX

dim arrX(2)As Variant‘聲明了壹個具有兩個成員的新數組。

arrx(1)= counterpa()‘將其他陣列遷移到陣列。

arrX(2)= countersB()

MsgBox arrX(1)(2)‘顯示每個數組的成員。

MsgBox arrX(2)(3)

末端接頭

多維數組

有時有必要跟蹤記錄數組中的相關信息。例如,為了跟蹤和記錄計算機屏幕上的每個像素,有必要參考其X和Y坐標。此時,您應該使用多維數組來存儲值。

您可以用Visual Basic聲明多維數組。例如,以下語句在過程中聲明了壹個10 × 10的二維數組。

雙精度靜態矩陣(9,9)

雙精度靜態矩陣(1到10,1到10)

dim multi d(3,1到10,1到15)

該語句建立了壹個大小為4 × 10 × 15的三維數組。元素的總數是三維的乘積,為600。

請註意,當增加數組的維度時,數組占用的存儲空間將大大增加,因此請謹慎使用多維數組。使用變體數組時要更加小心,因為它們需要更多的存儲空間。

用循環操作數組。

I為整數,J為整數

雙精度靜態矩陣(1到10,1到10)

對於I = 1至10

對於J = 1至10

matrix a(I,J)= I * 10+J

下壹個J

接下來我

要創建動態數組,請按照下列步驟操作:

使用Public語句聲明數組(如果希望數組是公共的),或者在模塊級使用Dim語句聲明數組(如果希望數組是模塊級的),或者在過程中使用Static或Dim語句聲明數組(如果希望數組是本地的)。將壹個空維度表附加到該數組,從而將該數組聲明為動態數組。

Dim DynArray()

使用ReDim語句分配元素的實際數量。ReDim DynArray(X+1)

ReDim語句只能出現在過程中。與Dim語句和Static語句不同,ReDim語句是壹個可執行語句,因為有了這個語句,應用程序在運行時執行壹個操作。

ReDim語句支持此語法,這與固定數組中使用的語法相同。對於每個維度,每個ReDim語句都可以更改元素的數量以及上限和下限。然而,陣列的尺寸不能改變。

ReDim DynArray(4到12)

例如,在模塊級用第壹個聲明建立的動態數組Matrix1:

Dim Matrix1()作為整數

Sub CalcValuesNow()

ReDim matrix 1(19,29)

末端接頭

ReDim語句將壹個20 × 30的整數矩陣分配給該矩陣(元素的總大小為600)。還有另壹種用變量設置動態數組邊界的方法:

ReDim matrix 1(X,Y)

請註意,您可以將字符串分配給大小可變的字節數組。字節數組也可以分配給變長字符串。請務必註意,字符串中的字節數因平臺而異。Unicode平臺上相同字符串的字節數是非Unicode平臺上的兩倍。

保留動態數組的內容

每次執行ReDim語句時,當前存儲在數組中的所有值都會丟失。Visual Basi將數組元素的值重置為空(對於變量數組)、0(對於數值數組)、零長度字符串(對於字符串數組)或空(對於對象數組)。

這樣做非常有用。有時您希望在不丟失數組中數據的情況下更改數組的大小。將redim Preserve dyna ray(ubound(dyna ray)+1)與Preserve關鍵字壹起使用。

ReDim保留矩陣(10,UBound(Matrix,2)+1)

並且不能按如下方式編程:

ReDim保留矩陣(UBound(Matrix,1)+1,10)