返回列表 上一主題 發帖

[發問]刪除不重複的資料,只留下重複的資訊

回復 1# boblovejoyce
試試看
  1. Option Explicit
  2. Sub EX()
  3.     Dim D As Object, DD As Object, E As Variant, Ar(), S As String, i As Integer
  4.     Set D = CreateObject("SCRIPTING.DICTIONARY")
  5.     'Dictionary 物件與 PERL 相關陣列全等。可以是任何型式的資料的項目被儲存在陣列中。每個項目都與一個唯一的關鍵字相關。該關鍵字用來取出單個項目,通常是整數或字串,可以是除陣列外的任何型態。
  6.     Set DD = CreateObject("SCRIPTING.DICTIONARY")
  7.     With Range("A1").CurrentRegion
  8.     'CurrentRegion 屬性 傳回 Range 物件,該物件代表目前的區域。目前區域是指以任意空白列及空白欄的組合為邊界的範圍。唯讀。
  9.         For Each E In .Rows
  10.             S = E.Cells(1, 2) & "-" & E.Cells(1, 3)
  11.             If D.Exists(S) Then      '字典物件 的關鍵字存在
  12.                 Ar = D(S)
  13.                 ReDim Preserve Ar(1 To 3, 1 To UBound(Ar, 2) + 1)
  14.                 'Preserve 選擇性引數。當改變原有陣列最後一維的大小時,仍然保有原來的資料的關鍵字。
  15.                 For i = 1 To 3
  16.                     Ar(i, UBound(Ar, 2)) = E.Cells(1, i)
  17.                 Next
  18.                 D(S) = Ar
  19.                 DD(S) = Ar
  20.             Else
  21.                 D(S) = Application.Transpose(E)
  22.             End If
  23.         Next
  24.     End With
  25.     For Each E In DD.ITEMS  '字典物件的項目
  26.         With Range("F" & Rows.Count).End(xlUp).Offset(1)
  27.             Ar = Application.Transpose(E)
  28.             .Resize(UBound(Ar), 3) = Ar
  29.         End With
  30.     Next
  31. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 手心向下是助人,手心向上是求人;助人快樂,求人痛苦。
返回列表 上一主題