於最近新增了許多資訊 轉至本版方便查尋
※ [本文轉錄自 Visual_Basic 看板 #1OYh_fss ]
作者: waiter337 (給開司一罐蘇格登) 看板: Visual_Basic
標題: [VBA ] 陣列貼上excel的方式(回樓上)
時間: Fri Jan 27 11:35:03 2017
這套方式也算拼拼湊湊出來
可能會有些微不正確
但如對於新手或許是個比較快速的一個範例
因為寫陣列不難,但要把陣列貼上cell 實在很難>.<
以下為陣列貼上工作表儲存格cell之辦法
1.
(1維陣列,所有列貼上某起始格,自動調整大小,cell為向下匯入)
Sheets("sheet1").[A1].Resize(UBound(陣列名)) =Application.Transpose(陣列名)
假設陣列內的資料是
1
3
5
顯示為
1
3
5
2.
(1維陣列,從某起始格,朝向右邊貼上,自動調整大小,cell為向右匯入)
Sheets("工作表1").[A1].Resize(1,UBound(陣列名,1) +1) = 陣列名
假設陣列內的資料是
1
3
5
顯示為
1 3 5
3.
(2維陣列,欄為不固定) #陣列設為0~最後一欄,將相同範圍貼至儲存格
Sheets("sh1").[A1].Resize(UBound(陣列名,1) +1,UBound(陣列名,2) +1) = 陣列名
假設陣列內的資料是
1 2
3 4
5 6
顯示為
1 2
3 4
5 6
4.
(2維陣列,欄為固定) #陣列假設0~2列 為0~4欄,貼至儲存格1~5欄
Sheets("sheet1").range("a1").Resize(UBound(陣列名)+1, 5) = 陣列名
假設陣列內的資料是
1 2 3 4 5
6 7 8 9 0
a b c d e
顯示為
1 2 3 4 5
6 7 8 9 0
a b c d e
也可以寫成
Sheets("sheet1").range("a1").Resize(3, 5) = 陣列名
[請注意以上陣列 UBound(陣列名)是否需要+1 ]
尤其resiz後面用的數字,"並不是"陣列的欄列,而是要貼上儲存格的欄列,
因為陣列是從0開始算
儲存格都用1開始算,請注意
另外也可以將陣列設為 redim ar(1 to 5)搭配儲存格欄列號
或者一開始於最上方寫入 Option base 1 將所有陣列索引值下限的預設值改成 1
這四條方法
我找到外國網站才補齊= =
為了這四行,我花了快20小時 XD
還有靠office板的s大大才得以學會
也歡迎大大一起揪錯 感恩