|
Sub 利用数组提取不重复值()
Dim arr1(1 To 10, 1 To 2)
Set endr = Cells(Rows.Count, "c").End(xlUp) '查找最后B列最后一个非空单元格
arr = Range([b2], endr) '将B列的姓名数据赋值给变量arr形成一个数组
For i = 1 To endr.Row - 1 '循环B列单元格个数的次数
For j = 1 To UBound(arr1) '找到arr1数组的最大小标,形成循环
x = arr(i, 1): y = arr1(j, 1) '辅助代码
If arr(i, 1) = arr1(j, 1) Then
arr1(j, 2) = arr(i, 2) + arr1(j, 2)
GoTo 100 'arr数组元素与arr1元素循环对比,如果相等,则跳出内层循环
End If
Next j
k = k + 1 '做个计数器,计算相等重复的元素人数
arr1(k, 1) = arr(i, 1) '如果循环完后都没有相等的,则将arr1循环的元素赋值给arr1数组
arr1(k, 2) = arr(i, 2)
100:
Next i
[e2].Resize(k, 2) = arr1 '循环结束后将arr1的结果赋值给单元格区域
End Sub
|
|