當前位置:成語大全網 - 新華字典 - VBA代碼示例:字典匹配

VBA代碼示例:字典匹配

那樣會慢壹倍哦,現在程序匹配到壹個就結束,如果現在有4802個關鍵字,平均壹條數據匹配2401次,如果每個都匹配4802次,去找有多少個滿足的,程序會變慢。

修改後的程序代碼,如果不怕慢,請使用:

Option?Explicit

Sub?匹配關鍵字()

Dim?db,?arr,?i,?j,?k,?n,?st?As?Worksheet

Set?db?=?CreateObject("Scripting.Dictionary")

Set?st?=?ThisWorkbook.Sheets("關鍵字")

arr?=?st.Cells(7,?8).CurrentRegion

For?i?=?2?To?UBound(arr)

For?j?=?2?To?UBound(arr,?2)

k?=?Trim(arr(i,?j))

If?k?<>?""?Then

db(k)?=?arr(i,?1)

End?If

Next?j

Next?i

Set?st?=?ActiveSheet

arr?=?st.Cells(1,?1).CurrentRegion

n?=?UBound(arr)

ReDim?rlt(2?To?n,?1?To?1)

For?i?=?2?To?n

For?Each?k?In?db.Keys

If?InStr(arr(i,?7),?k)?>?0?Then?rlt(i,?1)?=?rlt(i,?1)?&?db(k)?&?"?"

Next?k

Next?i

st.Cells(2,?6).Resize(n?-?1,?1)?=?rlt

MsgBox?"匹配完畢。"

End?Sub