Board logo

標題: 請問二維陣列取局部資料方法 [打印本頁]

作者: mlbolerud    時間: 2019-10-22 12:57     標題: 請問二維陣列取局部資料方法

各位大大
小弟我有個二維陣列取局部資料的問題 , 想請教各位高手
我的二維陣列 myarray 是從 myarray(1,1) ~ myarray(10,10)
我要把陣列部份資料寫入儲存格 , myarray(5,5) ~ myarray(7,7) 寫入Cells(5, 10) ~ Cells(7, 12)

整個array寫入儲存格 或是 單一位置寫入儲存格方式可以
  .Cells(5, 10).Resize( 10 , 10) = myarray  ......... 整個array 寫入 , 正確
  .Cells(8, 5) = myarray(5, 5)   .........  單一位置寫入 , 正確


但是下面這種寫法會出現錯誤
.Cells(5, 10).Resize(3, 3) = Range(myarray(2, 2), myarray(4, 4))  ......... 錯誤

除了寫個迴圈方式外, 有沒有比較簡單的方式?
感謝分享 ~
作者: JasnH    時間: 2019-10-22 15:37

試試:
.Cells(5, 10).Resize(3, 3)= Application.Index(myarray, [row(2:4)], [transpose(row(2:4))])
作者: mlbolerud    時間: 2019-10-22 21:30

感謝JasnH大大的指導
我試過了, 沒有問題, 比起我原先用的for迴圈方式簡潔多了
for i = 1 to 3
    for j = 1 to 3
         cells(4+j , 9+i) =  myarray(2+j, 2 + i)
    next
next

只是我試過把
[transpose(row(2:4))] 改成 [column(2:4)] , 為何跑出來結果會不一樣呢?
.Cells(5, 10).Resize(3, 3)= Application.Index(myarray, [row(2:4)], [column(2:4)])




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)