你的公式是整列引用,其实,将整列引用改成根据实际行数引用可大大节省CPU运算资源,减少卡顿几率,而不一定非得将公式改ⅤB。比如:实际数据有1万行,就把公式改成=LOOKUP(1,0/(用户!A$1:A$10000=A2),用户!U$1:U$10000)
通过这一改,速度肯定提升不少!
其实楼上说的很多,引用整列不利于运算。代码如下:
Sub test()
Dim i, j As Integer
Dim arr, arr1
Dim dic As Object
Set dic = CreateObject("scripting.dictionary")
arr = Sheets("用户").Range("a1").CurrentRegion
For i = 1 To UBound(arr)
dic(arr(i, 1)) = arr(i, 21)
Next
arr1 = Range("a1").CurrentRegion
For j = 2 To UBound(arr1)
Cells(j, 5) = dic(arr1(j, 1))
Next j
End Sub