首頁>Club>
9
回覆列表
  • 1 # 使用者3120385727362

    Dim Counters (14) As Integer "15 個元素。

    Dim Sums (20) As Double "21 個元素。

    為建立公用陣列,直接用 Public 取代 Dim。

    Public Counters (14) As Integer

    Public Sums (20) As Double

    在過程之中同樣的宣告使用 Dim:

    Dim Counters (14) As Integer

    Dim Sums (20) As Double

    第一個宣告建立了一個有 15 個元素的陣列,其索引號從 0 到 14 。第二個宣告建立了一個有 21 個元素的陣列,其索引號從 0 到 20 。預設的下界為 0。

    為了規定下界,用關鍵字 To 顯式提供下界(為 Long 資料型別):

    Dim Counters (1 To 15) As Integer

    Dim Sums (100 To 120) As String

    包含其它陣列的陣列

    Private Sub Command1_Click ()

    Dim intX As Integer "宣告計數器變數。

    "宣告並放置整數陣列。

    Dim countersA (5) As Integer

    For intX = 0 To 4

    countersA (intX) = 5

    Next intX

    "宣告並放置字串陣列。

    Dim countersB (5) As String

    For intX = 0 To 4

    countersB (intX) = "hello"

    Next intX

    Dim arrX (2) As Variant "宣告擁有兩個成員的新陣列。

    arrX (1) = countersA () "將其它陣列移居到陣列。

    arrX (2) = countersB ()

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

    MsgBox arrX (2) (3)

    End Sub

    多維陣列

    有時需要追蹤記錄陣列中的相關資訊。例如,為了追蹤記錄計算機螢幕上的每一個畫素,需要引用它的 X、Y 座標。這時應該用多維陣列儲存值。

    可用 Visual Basic 宣告多維陣列。例如,下面的語句聲明瞭一個過程內的 10 × 10 的二維陣列。

    Static MatrixA (9, 9) As Double

    Static MatrixA (1 To 10, 1 To 10) As Double

    Dim MultiD (3, 1 To 10, 1 To 15)

    這個宣告建立了三維陣列,大小為 4 × 10 × 15。元素總數為三個維數的乘積,為 600。

    注意 在增加陣列的維數時,陣列所佔的儲存空間會大幅度增加,所以要慎用多維陣列。使用 Variant 陣列時更要格外小心,因為他們需要更大的儲存空間。

    用迴圈運算元組

    Dim I As Integer, J As Integer

    Static MatrixA(1 To 10, 1 To 10) As Double

    For I = 1 To 10

    For J = 1 To 10

    MatrixA (I, J) = I * 10 + J

    Next J

    Next I

    要建立動態陣列,請按照以下步驟執行:

    (如果希望陣列為公用陣列,則)用 Public 語句宣告陣列,或者,(如果希望陣列為模組級,則)在模組級用 Dim 語句宣告陣列,或者(如果希望陣列為區域性陣列,則)在過程中用 Static 或 Dim 語句宣告陣列。給陣列附以一個空維數表,這樣就將陣列宣告為動態陣列。

    Dim DynArray ()

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

    ReDim 語句只能出現在過程中。與 Dim 語句、Static 語句不同,ReDim 語句是一個可執行語句,由於這一語句,應用程式在執行時執行一個操作。

    ReDim 語句支援這樣的語法,它與固定陣列中使用的語法相同。對於每一維數,每個 ReDim 語句都能改變元素數目以及上下界。但是,陣列的維數不能改變。

    ReDim DynArray (4 to 12)

    例如,用第一次宣告在模組級所建立的動態陣列 Matrix1:

    Dim Matrix1 () As Integer

    Sub CalcValuesNow ()

    ReDim Matrix1 (19, 29)

    End Sub

    ReDim 語句給 Matrix 分配一個 20 × 30 的整數矩陣(元素總大小為 600)。還有一個辦法,用變數設定動態陣列的邊界:

    ReDim Matrix1 (X, Y)

    注意 您可以將字串賦值給大小可變的位元組陣列。一個位元組陣列也可以被賦值給一個可變長的字串。一定要注意字串中的位元組數會隨平臺而變化。同一個字串在 Unicode 平臺上的位元組數是它在非 Unicode 平臺上的兩倍。

    保留動態陣列的內容

    每次執行 ReDim 語句時,當前儲存在陣列中的值都會全部丟失。Visual Basi 重新將陣列元素的值置為 Empty(對 Variant 陣列)、置為 0(對 Numeric 陣列)、置為 零長度字串(對 String 陣列)或者置為 Nothing(對於物件的陣列)。

    ,這樣做是非常有用的。有時希望改變陣列大小又不丟失陣列中的資料。使用具有 Preserve 關鍵字的 ReDim Preserve DynArray (UBound (DynArray) + 1)

    ReDim Preserve Matrix (10, UBound (Matrix, 2) + 1)

    而不可這樣程式設計:

    ReDim Preserve Matrix (UBound (Matrix, 1) + 1, 10)

  • 中秋節和大豐收的關聯?
  • 巴黎聖母院環境描寫的句子?