Sub 去重合并()
arr = Worksheets("sheet1").Range("D1").Clear '选择D列作为存储列,保存最后去重合并的值
arr = Worksheets("sheet1").UsedRange
Dim ARow As Long 'A列的行数
Dim BRow As Long 'B列的行数
ARow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row '不带空格的行数
BRow = Sheet1.Range("B" & Rows.Count).End(xlUp).Row
Set d = CreateObject("Scripting.Dictionary") '设置个字典类型的容器
ReDim brr(1 To ARow + BRow, 1) '设置个1维数组,1列,行数最大为A和B行数之和,不包括空格
For n = 2 To ARow '循环A列,从第二行开始,看你需要从哪个行开始
s = arr(n, 1) '将从第二行开始的数据全部塞入s里
If d.Exists(s) Or s = "" Then 'd(s)是个计数器,如果s这个值不在字典d里,说明不重复,就加入brr()第一列中,如果单元格是空格就跳过
'什么也不做
Else
j = j + 1
d(s) = 1
brr(j, 1) = s
End If
Next
For n = 2 To BRow '循环B列数据,从第二行开始,看你需要从哪个行开始
s = arr(n, 2) '将从第二行开始的数据全部塞入s里
If d.Exists(s) Or s = "" Then 'd(s)是个计数器,如果s这个值不在字典d里,说明不重复,就加入brr()第一列中,如果单元格是空格就跳过
'什么也不做
Else
j = j + 1
d(s) = 1
brr(j, 1) = s
End If
Next
Worksheets("sheet1").[D2].Resize(UBound(brr), 1) = Application.Index(brr, 0, 2)
End Sub