返回列表 上一主題 發帖

[發問] 自動整理資料

回復 1# adam2010
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim D As Object, Sh As Worksheet, Rng As Range, i As Integer, AR As Variant
  4.     Set D = CreateObject("SCRIPTING.DICTIONARY")          '字典物件
  5.     For Each Sh In Sheets                                 '工作表物件集合
  6.         If Not Sh.Name Like "彙總*" Then                  '比對工作表名稱
  7.             Set Rng = Sh.[U1]                             '機台固定從[U1]開始
  8.             Do While Rng <> ""
  9.                 For i = 2 To Sh.[A1].End(xlDown).Row      '[A1]往下到最後連續的資料列號
  10.                     If Rng.Cells(i, 1).Value <> "" Then
  11.                         If Not D.EXISTS(Rng.Value) Then   'EXISTS: 傳回字典物件(key[關鍵字])存在=True
  12.                             D(Rng.Value) = Array(Rng.Cells(i, 1).Value) '字典物件(key).Item=>內容,置入陣列
  13.                         Else
  14.                             AR = D(Rng.Value)                           '陣列取得字典物件(key).Item
  15.                             ReDim Preserve AR(UBound(AR) + 1)           '陣列擴充增加一元素)
  16.                              AR(UBound(AR)) = Rng.Cells(i, 1).Value     '陣列(UBound(AR))元素的上限值
  17.                              D(Rng.Value) = AR                          '字典物件(key[關鍵字])=陣列
  18.                         End If
  19.                     
  20.                     End If
  21.                 Next
  22.                 Set Rng = Rng.Offset(, 1)                   '向右移動
  23.             Loop
  24.         End If
  25.     Next
  26.     With Sheets("彙總")
  27.         .UsedRange.Clear
  28.         i = 1
  29.         For Each AR In D.KEYS             '字典物件(key)
  30.             .Cells(1, i) = AR
  31.             .Cells(2, i).Resize(UBound(D(AR)) + 1) = Application.WorksheetFunction.Transpose(D(AR)) '一維陣列轉成二維陣列
  32.             i = i + 1
  33.        Next
  34.         .UsedRange.Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:= _
  35.         xlYes, OrderCustom:=1, Orientation:=xlLeftToRight   '排序循列(橫向)
  36.      End With
  37. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2014-1-19 16:15 編輯

回復 3# adam2010

我完整的程式碼大都會加上   Option Explicit 不懂看看這裡
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 成功是優點的發揮,失敗是缺點的累積。
返回列表 上一主題