Board logo

標題: [發問] 請問各位三維陣列資料,該如何一次丟到儲存格? [打印本頁]

作者: qmi    時間: 2011-10-21 22:06     標題: 請問各位三維陣列資料,該如何一次丟到儲存格?

請問各位若有三維陣列資料,如附件檔案這樣,我以X,Y為比對的軸,若後面有相同XY軸資料則覆蓋前面,但是我不太清楚該怎麼一次將資料拋出,因為有些陣列中並沒有資料,但是因為需求是X:1-256,Y:1-256,Data:1-64,目前作法是用迴圈慢慢拋出,請問各位是否有其他方法可以加速這個動作,謝謝∼
作者: oobird    時間: 2011-10-22 10:23

也許你舉的例子並不適當
附件這種運算幹嘛用到三維陣列?
試試:
  1. Sub test()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. With Sheets("Data")
  4. a = .Range(.[a2], .[k65536].End(3))
  5. End With
  6. For i = 1 To UBound(a)
  7. d(a(i, 1) & "," & a(i, 2)) = Application.Index(a, i)
  8. Next
  9. Sheets("Temp").[a2].Resize(d.Count, UBound(a, 2)) = Application.Transpose(Application.Transpose(d.items))
  10. End Sub
複製代碼

作者: qmi    時間: 2011-10-25 21:42

感謝你的回覆謝謝!
作者: Hsieh    時間: 2011-10-25 23:04

回復 2# oobird


    姑且不論樓主的舉例恰當與否
如題要將三維陣列一次寫入工作表
依小弟的理解,工作表只是一個二維的矩陣,如何能容納三維陣列
這樣的作法是否有可能存在?
也就是說用儲存格的集合,要如何表現三維陣列?
不知老哥有何高見
作者: oobird    時間: 2011-10-25 23:20

將三維陣列一次寫入工作表本就不可能的
只能在第一維中循環
分別把它所屬的2、3維寫入工作表




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