返回列表 上一主題 發帖

[發問] Array矩陣,如何取出AR(1)裡的第5個值等等

回復 1# yangjie

你寫的語法和架構都不對!
程式也不用這樣落落長!
  1. Sub Transpose2()
  2. AR = Sheets("test1").Range(Cells(1, 1), Cells(10, 3)).Value'下面註解的部份是你原有的程式,只要這一列就可以完成
  3.         'AR(k) = Sheets("test1").Range(Cells(1, 1), Cells(10, 1)).Value
  4.         'AR(0) = Sheets("test1").Range(Cells(1, 1), Cells(10, 1)).Value
  5.         'k = k + 1
  6.         'ReDim Preserve AR(k)
  7.         'AR(1) = Sheets("test1").Range(Cells(1, 2), Cells(10, 2)).Value
  8.        ' k = k + 1
  9.         'ReDim Preserve AR(k)
  10.         'AR(2) = Sheets("test1").Range(Cells(1, 3), Cells(10, 3)).Value


  11. Cells(1, 10).Resize(3, UBound(AR, 1)) = ""     '清除
  12. Cells(5, 10).Resize(UBound(AR, 1), 3) = ""'   '清除
  13. Cells(1, 10).Resize(3, UBound(AR, 1)) = Application.Transpose(AR)'這列是從J1欄到S3,往橫的方向貼上
  14. Cells(5, 10).Resize(UBound(AR, 1), 3) = AR'這列是從J5到L14和原來的方向一樣
  15. End Sub
複製代碼

TOP

回復 1# yangjie
如下圖顯示
   

TOP

回復 1# yangjie

再貼一張解釋給你
   

TOP

本帖最後由 lpk187 於 2015-6-12 14:53 編輯

回復 5# yangjie


    ar = Sheets("test1").Range(Cells(1, 1), Cells(10, 3)).Value '讀取A1到C10
For N = 1 To 10
    If .....then
          Cells(5 , 15) = ar(N, 2) '這裡的 ar(N, 2)是指B欄的第N列
   end if
Next

TOP

回復 5# yangjie

其實不要把陣列認為很複雜,以儲存格來說陣列,儲存格就是一個2維陣列,所以當我們把範圍設成陣列時也是一個2維陣列
例如 ar(列,欄)
但假若只是有1維陣列
就不能直接用像ar=range("A1:C10")這種方式去讀取
方式如下:
讀到一維陣列
Dim ar(1 to 10)
for N=1 to 10
    ar(N)=cells(N,1)
next
...
寫入到儲存格
for x=1 to 10
cells(x,10)=ar(X)
next

TOP

        靜思自在 : 能善用時間的人,必能掌握自己努力的方向。
返回列表 上一主題