- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 142
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2026-7-16
                
|
- Sub nn()
- Dim ar(0 To 10) As Integer, ay(0 To 3) As String, y
- y = Array(1, "L", 2, "K") '陣列中的資料可以是不同型態資料
- MsgBox Join(y, Chr(10))
- For i = 0 To 10
- ar(i) = i
- Next
- For i = 0 To 3
- ay(i) = i
- Next
- a = Array(ar, ay)
- MsgBox TypeName(a) '顯示變數a的資料型態
- For Each c In a
- If TypeName(c) = "String()" Then MsgBox Join(c, Chr(10)) '如果是字串一維陣列就顯示內容
- If TypeName(c) = "Integer()" Then MsgBox Application.Sum(c) '如果是整數一維陣列就顯示加總結果
- Next
- End Sub
複製代碼 Array是函數,其中的元素就等同函數的引數,所以它是傳回一個陣列型態的變數,他是Variant 型態
這個Variant 型態的元素是可以為任何型態(包含陣列)的元素
用Array函數建立的陣列,傳回的值,其型態就是Variant
這就是VBA說明中所說:Variant 變數可以含有任何型態的陣列,除了固定長度字串和 使用者自訂型態以外
以Dim宣告的陣列是布置一個陣列空間,而不是直接賦值,所以必須針對每個空間一一給值
當你在DIM宣告時沒有指定陣列大小時,該陣列就是動態陣列
所以必須使用REDIM來重新定義空間大小,才能再將元素寫入該陣列
我曾用一個比喻
Array函數,就是一碗盛好東西的碗,裡面的東西是可以裝入不同的物品
Dim宣告的變數他是一個空的碗,如果沒有宣告型態時,他是可以裝任何不同物品的空碗,不過在宣告時並沒有裝物品
所以要裝物品時,要先準備好數量足夠的空碗才能將一堆物品有規則的放進碗裡 |
|