当前位置:首页>科技>vba取旁边一列的数据取两列数据的相同值
发布时间:2026-07-21阅读(1)

Sub Ck()
Set d = CreateObject("Scripting.Dictionary")
arr1 = Range([A2], [A65536].End(xlUp))
arr2 = Range([B2], [B65536].End(xlUp))
For i = 1 To UBound(arr1)
d(arr1(i, 1)) = 0
Next
For j = 1 To UBound(arr2)
If d.exists(arr2(j, 1)) Then d(arr2(j, 1)) = 1
Next
For Each d1 In d.keys
If d(d1) = 0 Then d.Remove (d1)
Next
Range("C2").Resize(d.Count, 1) = WorksheetFunction.Transpose(d.keys)
End Sub
结果如图:
arr1 = Range([A2], [A65536].End(xlUp)) ’建立数组,将A列相应的值放入数组放入arr1
arr2 = Range([B2], [B65536].End(xlUp)) ’建立数组,将B列相应的值放入数组放入arr2
For i = 1 To UBound(arr1)
d(arr1(i, 1)) = 0 ’将arr1的值写入字典的key,其item值等于0
Next
For j = 1 To UBound(arr2)
If d.exists(arr2(j, 1)) Then d(arr2(j, 1)) = 1 ’如有B列的数值等于字典的key,那么,将其对应key的item赋值为1
Next
For Each d1 In d.keys
If d(d1) = 0 Then d.Remove (d1) ‘删除字典中item为0的值,剩余的为item为1的值,也就是获得了两列的重复项
Range("C2").Resize(d.Count, 1) = WorksheetFunction.Transpose(d.keys)
‘转置,在C列列出重复值。

Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图