【问题描述】VBA如何删除重复值?

【小千解答】可以使用以下3种方法:
方法1:Range.RemoveDuplicates方法
方法说明:

代码如下:
Sub xqoffice()
Range("A:A").Copy Range("C1")
Range("C:C").RemoveDuplicates 1, xlYes
End Sub注意事项:
1、Excel2007及以上版本才支持RemoveDuplicates方法。
2、工作表处于筛选状态,有数据行被过滤隐藏的情况,会影响程序的运行结果。
方法2:借助字典
代码如下:
Sub xqoffice2()
Dim Arr
Dim i As Integer
Dim xqDic As Object
Set xqDic = CreateObject("scripting.dictionary")
Arr = Range("A1").CurrentRegion.Value
For i = 1 To UBound(Arr)
xqDic(Arr(i, 1)) = ""
Next i
Range("C1:C" & xqDic.Count).Value = Application.WorksheetFunction.Transpose(xqDic.keys)
Erase Arr
Set xqDic = Nothing
End Sub方法3:Filter函数和动态数组
Filter函数语法:

代码如下:
Sub xqoffice3()
Dim Arr, Rst, ArTmp
Dim i As Integer
Dim N As Integer
Arr = Range("A1").CurrentRegion.Value
ReDim Rst(1 To 1)
Rst(1) = Arr(1, 1)
N = 1
For i = 1 To UBound(Arr)
ArTmp = Filter(Rst, Arr(i, 1))
If UBound(ArTmp) < 0 Then
N = N + 1
ReDim Preserve Rst(1 To N)
Rst(N) = Arr(i, 1)
End If
Next i
Range("C1:C" & N).Value = Application.WorksheetFunction.Transpose(Rst)
Erase Arr
Erase Rst
End Sub