Board logo

標題: [發問] 如何從三維陣列擷取每一層二維資料貼到sheet裡?請各位前輩指教∼ [打印本頁]

作者: justintoolbox    時間: 2015-8-13 11:18     標題: 如何從三維陣列擷取每一層二維資料貼到sheet裡?請各位前輩指教∼

各位前輩們大家好,

已知道存在的二維陣列(dAr)中若要擷取某一維度的資料可以使用 application.index(dAr,0,1) 或者  application.index(dAr,1,0) 的方式抽出資料

但如果是存在三維陣列(Ar)中, 如何把每一層的二維資料抽出來,放到各別的sheet裡面。?
懇請各位前輩們與高手們指導,感謝。
  1. Sub Ex()
  2. Dim Ar, z, x, y
  3. ReDim Ar(1 To 3, 1 To 3, 1 To 3)
  4. For z = 1 To 3
  5.    For x = 1 To 3
  6.           For y = 1 To 3
  7.                 Ar(z, x, y) = z * x * y
  8.             Next k
  9.     Next j
  10. Next i
  11. For z = 1 To 3
  12. worksheets(z).[a1].resize(3,3)= ???????
  13. Next z
  14. End Sub
複製代碼

作者: justintoolbox    時間: 2015-8-13 11:22

各位前輩們大家好,

已知道存在的二維陣列(dAr)中若要擷取某一維度的資料可以使用 application.index(dA ...
justintoolbox 發表於 2015-8-13 11:18


抱歉 ,前面代碼有些錯誤,代碼修正如下
  1. Sub Ex()
  2. Dim Ar, z, x, y
  3. ReDim Ar(1 To 3, 1 To 3, 1 To 3)
  4. For z = 1 To 3
  5.    For x = 1 To 3
  6.           For y = 1 To 3
  7.                 Ar(z, x, y) = z * x * y
  8.             Next y
  9.     Next x
  10. Next z
  11. For z = 1 To 3
  12. worksheets(z).[a1].resize(3,3)= ???????
  13. Next z
  14. End Sub
複製代碼

作者: ikboy    時間: 2015-8-13 16:22

index 不支援3維, 看來要循環了。

Sub Ex()
Dim Ar, z, x, y, ar3
ReDim Ar(1 To 3, 1 To 3, 1 To 3)
For z = 1 To 3
   For x = 1 To 3
          For y = 1 To 3
                Ar(z, x, y) = z * x * y
            Next y
    Next x
Next z
ReDim ar3(1 To UBound(Ar), 1 To UBound(Ar, 2))
For z = 1 To UBound(Ar)
    For x = 1 To UBound(Ar, 2)
        For y = 1 To UBound(Ar, 3)
            ar3(x, y) = Ar(z, x, y)
        Next
    Next
Worksheets(z).[a1].Resize(UBound(Ar), UBound(Ar, 2)) = ar3
Next
End Sub
作者: justintoolbox    時間: 2015-8-14 06:45

index 不支援3維, 看來要循環了。

Sub Ex()
Dim Ar, z, x, y, ar3
ReDim Ar(1 To 3, 1 To 3, 1 To 3)
...
ikboy 發表於 2015-8-13 16:22


太感謝ikboy指點!

這方法非常好(將3維陣列的某一層資料讀出至新建的2維陣列,再把2維陣列貼到sheet裡面)!

非常感謝你∼
作者: justintoolbox    時間: 2015-8-14 06:49

太感謝ikboy指點!

這方法非常好(將3維陣列的某一層資料讀出至新建的2維陣列,再把2維陣列貼到shee ...
justintoolbox 發表於 2015-8-14 06:45


請教各位高手與前輩們,除了使用回圈方式(好方法之一),

是否還有其他的方法能直接讀取3維陣列中某一層的2維陣列資料?(好方法之二?!)




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