推 marki: 謝謝 01/28 10:03
推 nicegigi: 推推 03/11 21:50
原先第二項是
Sheets("工作表1").[A1].Resize(1,UBound(陣列名,2) +1) = 陣列名
改成
Sheets("工作表1").[A1].Resize(1,UBound(陣列名,1) +1) = 陣列名
※ 編輯: waiter337 (36.237.149.168 臺灣), 10/17/2020 09:02:15
補充一下新進展(資料在國外找到的) 2021/4/21
二維陣列 取出 任一整欄所有資料 或 任一整列所有資料 貼上工作表的方法
(原先的方式只能用迴圈逐個篩出,但有人找到可以用index的方式幫助快速取得)
假設ar陣列內的資料是
1 2
3 4
5 6
單取陣列第一橫列所有資料的方法
[A1].Resize(2, 1) = Application.Transpose(Application.Index(ar, 1, 0))
2 <--這個數字自行調整成你想要貼上的範圍大小,以下例子皆是
顯示為
1
2
第二橫列資料全部取出
[A1].Resize(2, 1) = Application.Transpose(Application.Index(ar, 2, 0))
顯示為
3
4
第一直欄資料全部取出
[A1].Resize(3, 1) = Application.Index(ar, 0, 1)
顯示為
1
3
5
第二直欄資料全部取出
[A1].Resize(3, 1) = Application.Index(ar, 0, 2)
顯示為
2
4
6
追加一項
第二直欄資料全部取出放入另一個陣列br
br = Application.Index(ar, 0, 2)
br陣列顯示為
2
4
6
※ 編輯: waiter337 (36.236.165.70 臺灣), 04/22/2021 23:04:58
※ waiter337:轉錄至看板 Office 04/22 23:05
追加另外一項
如果想要把儲存格上的資料 貼到陣列 並成為二維陣列 或者 一維陣列 的方式
舉例:
三個字 "a", "b", "c" 分別位於 range("a1:a3")
想放入陣列 通常的作法是
ar = range("A1:A3")
會顯示為
ar(1,1) 為"a"
ar(2,1) 為"b"
ar(3,1) 為"c"
由於儲存格為2維陣列 轉換到陣列中 也是二維陣列
另問 是否有方式直接轉為一維陣列?
可用以下方法
ar = Application.Transpose(Range("A1:A3"))
會顯示為
ar(1) 為"a"
ar(2) 為"b"
ar(3) 為"c"_
※ 編輯: waiter337 (111.242.196.188 臺灣), 08/03/2021 15:35:56
※ 編輯: waiter337 (218.166.192.86 臺灣), 05/21/2022 06:50:28