返回列表 上一主題 發帖

[發問] 這種重複值刪除的VBA該如何寫(2003)

回復 1# terrykyo520


    試試看這個是否符合需要
  1. Sub Test0()
  2.     Dim H&
  3.     Range("A2").Select
  4.     H = [A1].End(xlDown).Row
  5.     Range("$A$1:$C$" & H).RemoveDuplicates Columns:=Array(2, 3), Header:=xlYes
  6. End Sub
複製代碼

TOP

回復 3# terrykyo520


   這個應沒有版本的區別
  1. Sub Test1()
  2.     Dim i&, j&
  3.     Dim aa, bb
  4.    
  5.     i = [A1].End(xlDown).Row
  6.     aa = Range("A2:C" & i).Value
  7.     For i = 1 To UBound(aa) - 1
  8.         For j = i + 1 To UBound(aa)
  9.             If aa(j, 2) = aa(i, 2) And aa(j, 3) = aa(i, 3) Then
  10.                 aa(j, 1) = "": aa(j, 2) = "": aa(j, 3) = ""
  11.             End If
  12.         Next
  13.     Next
  14.     ReDim bb(UBound(aa), 3)
  15.     j = 0
  16.     For i = 1 To UBound(aa)
  17.         If aa(i, 1) <> "" Then
  18.             j = j + 1
  19.             bb(j, 1) = aa(i, 1): bb(j, 2) = aa(i, 2): bb(j, 3) = aa(i, 3)
  20.         End If
  21.     Next
  22.     Range("A2").Resize(UBound(aa), 3).Clear
  23.     Range("A2").Resize(UBound(bb), 3) = bb

  24. End Sub
複製代碼

TOP

回復 5# terrykyo520


    請列一期望的結果表是什麼
這樣比較好處理

TOP

回復 5# terrykyo520


    答案跟你的右圖一樣
test1.rar (9.04 KB)

TOP

回復 14# terrykyo520

請注意陣列起始位置 是 0 還是 1
加 Option base 1 是定義陣列從 1 開始

參照 4#

Option base 1   
Sub Test1()
    Dim i&, j&
    Dim aa, bb
   
    i = [A1].End(xlDown).Row
    aa = Range("A2:C" & i).Value
   For i = 1 To UBound(aa) - 1
.........

TOP

        靜思自在 : 愛不是要求對方,而是要由自身的付出。
返回列表 上一主題