返回列表 上一主題 發帖

[發問] 矩陣資料轉置的疑問

回復 1# fusayloveme
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Range, Ar(), i As Integer
  4.     With Sheets("2013")
  5.         Set Rng = .Range("A1:C1").Resize(.[A1].End(xlDown).Row)  'End(xlDown) '項目可延伸
  6.         Ar = .Range("D1").Resize(Rng.Rows.Count, .[D1].End(xlToRight).Column - 3).Value '監測值
  7.     End With
  8.     With Sheets("處理後資料")
  9.         .UsedRange.Clear
  10.         .[A1:E1] = Array("日期", "測項", "測站", "時間", "測值")
  11.         For i = 2 To Rng.Rows.Count         '從2列開始
  12.            With .Cells(.Rows.Count, "A").End(xlUp)
  13.                 .Offset(1).Resize(UBound(Ar, 2)) = Rng.Cells(i, "A").Text    '日期
  14.                 .Offset(1, 1).Resize(UBound(Ar, 2)) = Rng.Cells(i, "B")      '測項
  15.                 .Offset(1, 2).Resize(UBound(Ar, 2)) = Rng.Cells(i, "C")      '測站
  16.                 '陣列導入儲存格的值為2維陣列,元素下限索引從1開始.
  17.                 .Offset(1, 3).Resize(UBound(Ar, 2)) = Application.Transpose(Application.Index(Ar, 1))      '時間
  18.                 .Offset(1, 4).Resize(UBound(Ar, 2)) = Application.Transpose(Application.Index(Ar, 2))      '測值
  19.            End With
  20.         Next
  21.         With .UsedRange.Borders   '框線
  22.             .LineStyle = 1
  23.             .Weight = xlThin
  24.         End With
  25.     End With
  26. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2015-4-10 14:40 編輯

回復 6# fusayloveme
附檔可置於壓縮檔上傳

僅能夠產出65521列的資料,你的檔案版本可能是2003.
2003的最大列數為65536,超出的列數會產生錯誤.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題