改寫Excel 2003版本,請求高手修改
Dim rng As Range, n As Long, tmpa()
ReDim tmpa(1 To 100, 1 To 1)
With CreateObject("Scripting.Dictionary")
.CompareMode = 1
For Each rng In ActiveSheet.Range("$G$1:$G$100")
n = 0
If Not .Exists(rng.Value) Then
n = n + 1
tmpa(n, 1) = rng.Value
.Item(rng.Value) = Empty
End If
Next
End With
ActiveSheet.Range("$G$1:$G$100").Value = tmpa
請求高手修改。
2.Excel 2007版本
If ActiveWorkbook.Connections.Count > 0 Then
For i = 1 To ActiveWorkbook.Connections.Count
ActiveWorkbook.Connections.Item(1).Delete
Next i
End If
Dim r As Range, n As Long, a()
'lr2 = Range("A" & Rows.Count).End(xlUp).Row ' define lr2 as the last row of data
'MsgBox ("Row Number = ") & Right(rng, Len(rng) - 3)
lr2 = Range(Right(rng, Len(rng) - 3)).Row
'MsgBox ("Row Number = ") & lr2
ReDim a(1 To lr2 - 1, 1 To 1)
With CreateObject("Scripting.Dictionary")
.CompareMode = 1
For Each r In ActiveSheet.Range(rng)
If Not .Exists(r.Value) Then
n = n + 1
a(n, 1) = r.Value
.Item(r.Value) = Empty
End If
Next
End With
ActiveSheet.Range(rng).Value = a
End Sub
Sub Test()
Dim r1 As String
r1 = "A2:A6"
removedub (r1)
End Sub