返回列表 上一主題 發帖

[發問] 不規則資料,如何重整.....

回復 3# b31978
試試看
  1. '一般模組程式碼
  2. Option Explicit
  3. Sub Ex()
  4.     Dim Rng As Range, C As Range, S, Ar(), At(), i As Integer
  5.     Set Rng = ActiveSheet.Range("A3")
  6.     Do While Rng <> ""
  7.         With Rng.Offset(, 2).Resize(Rng.MergeArea.Count, 7)
  8.         'Rng.MergeArea 儲存格的合併範圍
  9.         'Rng.MergeArea.Count 合併範圍的Cells總計
  10.             If Application.CountA(.Cells) > 0 Then '.Cells :這 With 物件範圍Range的Cells
  11.                 '工作表函數 CountA 計算範圍內有資料的Cells個數
  12.                 For Each C In .SpecialCells(xlCellTypeConstants)
  13.                     'SpecialCells 特殊儲存格 (xlCellTypeConstants :字串,數字 )
  14.                     ReDim Ar(1 To 4)      '重置陣列
  15.                     Ar(1) = Rng.Value
  16.                     Ar(2) = Cells(2, C.Column)
  17.                     Ar(3) = C
  18.                     Ar(4) = Cells(C.Row, "j")
  19.                     i = i + 1
  20.                     ReDim Preserve At(1 To i)  '重置陣列:Preserve保留原有的元素
  21.                     At(i) = Ar
  22.                 Next
  23.             End If
  24.         End With
  25.         Set Rng = Rng.End(xlDown) '下一個有合併範圍的Range
  26.     Loop
  27.     If i > 0 Then [M3].Resize(i, 4) = Application.Transpose(Application.Transpose(At))
  28. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 知識要用心體會,才能變成自己的智慧。
返回列表 上一主題