返回列表 上一主題 發帖

[發問] 找重複資料項

回復 6# mhl9mhl9
  1. Option Explicit
  2. Sub Ex()
  3.     Dim D As Object, Rng(1 To 2) As Range, R As Range, Ar As String, T As Date
  4.     Set D = CreateObject("scripting.dictionary")
  5.     T = Time
  6.     With Sheets("資料庫")
  7.         .Rows.Hidden = False '取消 存格格的隱藏
  8.         Set Rng(1) = .Range("B:E").SpecialCells(xlCellTypeConstants).Rows
  9.         Rng(1).Interior.ColorIndex = xlNone                            '取消     圖樣顏色
  10.         For Each R In Rng(1)
  11.             Ar = Join(Application.Transpose(Application.Transpose(R.Value)), ",")
  12.             If D.exists(Ar) Then
  13.                 D(Ar).Interior.Color = vbYellow                        '有重複   圖樣顯示黃色
  14.                 R.Interior.Color = vbRed                               '重複資料 圖樣顯示紅色
  15.                 If Rng(2) Is Nothing Then
  16.                     Set Rng(2) = Union(.Rows(1), R, D(Ar))
  17.                 Else
  18.                     Set Rng(2) = Union(Rng(2), R, D(Ar))
  19.                 End If
  20.             Else
  21.                 Set D(Ar) = R
  22.             End If
  23.         Next
  24.         If Not Rng(2) Is Nothing Then
  25.             .Rows.Hidden = True
  26.             Rng(2).Rows.Hidden = False
  27.             .Cells(1).Activate
  28.         End If
  29.         MsgBox Application.Text(Time - T, "共費時SS秒")
  30.     End With
  31. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

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