返回列表 上一主題 發帖

[發問] 請問各位三維陣列資料,該如何一次丟到儲存格?

[發問] 請問各位三維陣列資料,該如何一次丟到儲存格?

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

Book1.zip (10.05 KB)

也許你舉的例子並不適當
附件這種運算幹嘛用到三維陣列?
試試:
  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
複製代碼

TOP

感謝你的回覆謝謝!

TOP

回復 2# oobird


    姑且不論樓主的舉例恰當與否
如題要將三維陣列一次寫入工作表
依小弟的理解,工作表只是一個二維的矩陣,如何能容納三維陣列
這樣的作法是否有可能存在?
也就是說用儲存格的集合,要如何表現三維陣列?
不知老哥有何高見
學海無涯_不恥下問

TOP

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

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題