當前位置:成語大全網 - 新華字典 - VBA字典實現VLOOKP匹配

VBA字典實現VLOOKP匹配

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