不要使用对象作为KEY,应该使用简单类型,判断存在的方法是Exists,最好使用赋值语句代替.Add,可以避免重复导致的问题。修改后的代码:
Option?Explicit
Sub?dic()
Dim?d,?i%,?j%,?temp
Dim?k,?v
Set?d?=?CreateObject("Scripting.Dictionary")
For?i?=?1?To?Sheet1.[a66].End(3).Row
k?=?Trim(Sheet1.Cells(i,?1))
v?=?Sheet1.Cells(i,?2).Value
d(k)?=?v
Next?i
For?j?=?1?To?Sheet2.[a66].End(3).Row
k?=?Trim(Sheet2.Cells(j,?1))
If?d.Exists(k)?Then
Sheet2.Cells(j,?2).Value?=?d(k)
End?If
Next
End?Sub