我们依旧按下熟悉的alt+f11进入vbe编辑器,新建一个模块输入代码:
Sub 提取唯一值()
Dim Rng As Range
Dim Str As String
Dim EndRowNo As Integer
EndRowNo = Range("A1").End(xlDown).Row '找出A列最大行数
For Each Rng In Range("A2:A" & EndRowNo) '遍历A列每一个单元,如果没有和之前的值重复则合并到Str里去,并用“/”隔开
If Not Str Like "*" & Rng & "*" Then '用Not like判断值是否已经合并过
Str = Str & "/" & Rng
End If
Next
Str = VBA.Mid(Str, 2, Len(Str)) '把生成的字符串中第一个“/”号去掉
Dim arr
arr = Split(Str, "/") '使用split函数生成数组,这个数组内的元素就是我们要找的唯一值了
Range("c2:c" & UBound(arr) + 2) = WorksheetFunction.Transpose(arr) '把生成的数组贴到目标区域
End Sub