Sub SS() '使用数组查找
Set ds1 = CreateObject("scripting.dictionary")
arr1 = Sheets(3).Range("G1", "G15691") '将EXCEL数据装入数组,G列为身份证号
For J = 1 To 15691 '循环,将数组装入字典,数组中不能有重复值,否则会出错,可使用WPS数据--删除重复项命令先删除重复数据
ds1.Add arr1(J, 1), J 'arr1(J, 1)数组只一有列,装入字典的KEY,J装入字典的ITEM,J标记行号
Next
'
'
For i = 2 To 592
If ds1.exists(Trim(Sheets(1).Cells(i, "b"))) Then '在字典中查找,TRIM去除所要查找值前后的空格,否则会查找不到数据
Sheets(1).Cells(i, "d") = Sheets(3).Cells(ds1.Item(Trim(Sheets(1).Cells(i, "b"))), "h") '注意要使用TRIM函数,ds1.Item(Trim(Sheets(1).Cells(i, "b")))为所查找值在字典中的ITEM,即所查找值在总表中的行
End If
Next
End Sub



