返回列表 上一主題 發帖

矩陣合併

本帖最後由 stillfish00 於 2013-1-2 16:27 編輯

回復 1# acdx
好像沒什麼簡便方法 , 假設你的array下限都為1
1.直接提取元素
  1. Dim ar, i
  2. ReDim ar(1 To 12, 1 To 8)
  3. For i = 1 To 12
  4.     ar(i, 1) = HdB(i, 1)
  5.     ar(i, 2) = MdB(i, 1)
  6.     'ar(i, 3) = ....
  7.     '....
  8.     'ar(i, 8) = ....
  9. Next i
複製代碼
2.利用工作表(感覺挺浪費)
  1. Dim ar
  2. With Workbooks.Add
  3.     With .Sheets(1)
  4.         .[A1].Resize(12) = HdB
  5.         .[A1].Resize(12).Offset(, 1) = MdB
  6.         '.[A1].Resize(12).Offset(, 2) = ...
  7.         '...
  8.         '.[A1].Resize(12).Offset(, 7) = ...
  9.         ar = .[A1].Resize(12, 8)
  10.     End With
  11.     .Close savechanges:=False
  12. End With
複製代碼
3. 改用Evaluate/Join (陣列元素不含逗號或分號字元時才可用)
  1. Dim ar
  2. ar = Application.Transpose(Evaluate("{" & _
  3.          Join(Application.Transpose(HdB), ",") & ";" & _
  4.          Join(Application.Transpose(MdB), ",") & _
  5.          "}"))
複製代碼

TOP

回復 3# Hsieh
還是版主的方法簡潔 ,
原來第10行transpose兩次還有這種效果:
一維陣列的一維陣列(Arr(m)(n))轉二維(Arr(m,n))

TOP

        靜思自在 : 【時間無法遮擋】怕時間消逝,花了許多心血,想盡各式方法要遮擋時間,結果是:浪費了更多時間,且一無所成!
返回列表 上一主題