- 帖子
- 552
- 主題
- 3
- 精華
- 0
- 積分
- 578
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2015-2-8
- 最後登錄
- 2024-7-9
  
|
4#
發表於 2015-8-14 09:50
| 只看該作者
回復 3# EGBT
我用一個簡單的例子說明:
以下列程式碼來說,程式讀取從A1到A欄的最後一格做為程式處理的範圍,但我不知它最後會落在哪裡,
這時就可以利用ReDim了,讓它一個一個累加到最格處理的儲存格,但這裡要注意的事是ReDim只能增加最後一維的維度
例如ReDim arr(1 to 3,1 to n)只能增加紅字部份的維度
若ReDim後面沒有加上Preserve則每次增加維度後必會刪除原來陣列的內容,所以以下列程式來說為了不刪除其陣列中的內容
故寫為 ReDim Preserve ar(n)- Sub Ex()
- Dim ar()
- n = 1
- For Each Rng In Range("a1", Cells(Rows.Count, 1).End(xlUp).Address)
- ReDim Preserve ar(n)
- ar(n) = Rng
- n = n + 1
- Next
- [C1].Resize(UBound(ar)) = Application.Transpose(ar)
- End Sub
複製代碼 |
|