A列是不是長數字(手機號、銀行卡號、身份證號這些),是的話試試看下面的代碼,只修改了兩行:
Sub?test()Dim?arr,?brr,?d,?i
Dim?t
t?=?Timer
Set?d?=?CreateObject("scripting.dictionary")
arr?=?Sheet1.Range("a2:b145333")
'''''''''''''''''''''''''''''''建立字典''''''''''''''''''''''''''''''''''''''''
For?i?=?1?To?UBound(arr)
d(Trim(arr(i,?1)))?=?arr(i,?2)?'通過循環,把要進行查詢的源表中的關鍵字成為字典中的關鍵字以及關鍵字所對應的項
Next
'''''''''''''''字典建立完畢''''''''''''''''''''''''''''''''
brr?=?Sheet1.Range("c2:d"?&?Cells(Rows.Count,?3).End(xlUp).Row)
For?i?=?1?To?UBound(brr)
brr(i,?2)?=?d(Trim(brr(i,?1)))?'用這個d(brr(i,?1))?,取得brr(i,1)裏的關鍵字,在前面所建立的字典中所對應的項。賦值給數組brr的第二列。
Next
''''''''''''''寫出數組''''''''''''''''''''''''''''''''''''''''''''''
Sheet1.Range("c2").Resize(UBound(brr),?UBound(brr,?2))?=?brr
Set?d?=?Nothing
MsgBox?"程序運行時間為"?&?Timer?-?t
End?Sub