|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
Sub 多列同时去重()
Dim arr, d As Object, sh As Worksheet
Set d = CreateObject("scripting.dictionary")
Set rng1 = Application.InputBox("请选择工作表准备参加拆分的完整区域,不要选择整列整行,只选择绝对区域", "选取提示", , , , , , 8)
If rng1 Is Nothing Then MsgBox "您没有选择要保存的列区域": Exit Sub
arr = ActiveSheet.Range(rng1.Address)
Y = UBound(arr, 2)
HH = UBound(arr, 1)
With ActiveSheet
ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
For j = 1 To UBound(arr, 2)
n = 0
Set dic = CreateObject("scripting.dictionary")
For i = 1 To UBound(arr)
If Not dic.Exists(arr(i, j)) Then
n = n + 1
brr(n, j) = arr(i, j)
dic(arr(i, j)) = ""
End If
Next
Next
On Error Resume Next
Set SHT = Sheets("去重后所得数据") '判断"合并"工作表是否存在
If SHT Is Nothing Then '不存在
Sheets.add.Name = "去重后所得数据" '添加一个工作表,并命名为"合并"
Set SHT = Sheets("去重后所得数据") '把新表赋给变量sht
Else '存在
SHT.UsedRange.clear '清除"合并"工作表原数据
End If
Sheets("去重后所得数据").Range("a1").Resize(UBound(brr), UBound(brr, 2)).NumberFormatLocal = "@"
Sheets("去重后所得数据").Range("a1").Resize(UBound(brr), UBound(brr, 2)) = brr
SHT.Activate
End With
Application.ScreenUpdating = 1
End Sub |
评分
-
1
查看全部评分
-
|