我在寻找帮助使代码片段运行得更快。我已经尝试了一些技巧,比如保存数组中的值,然后评估它们并关闭屏幕更新&代码运行时的计算,但仍需要非常多的时间。在Excel中缓慢运行vba脚本时遇到困难
我认识到有一吨的记录可以贯穿,但我希望有更多的资深程序员能够给我提供一些明智的建议。
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim w As Long
Dim x As Long
Dim y As Long
Dim z As Long
Dim srch() As Variant
Dim ent() As Variant
Dim rng1 As Range
Dim rng As Range
Set rng = ActiveSheet.Range("C2:C134743")
ReDim srch(1 To 134742)
Set rng1 = Sheets("ExampleSheet").Range("F2:F63078")
ReDim ent(1 To 63077)
For x = 1 To 134742
srch(x) = rng.Cells(x, 1).Value
Next x
For w = 1 To 63077
ent(w) = rng1.Cells(w, 1).Value
Next w
For z = 1 To 134742
For y = 1 To 63077
If CStr(srch(z)) = ent(y) Then
ActiveSheet.Range("AA2:AA134743").Cells(z, 1) = "Example_True"
GoTo jmp
Else
ActiveSheet.Range("AA2:AA134743").Cells(z, 1) = "Example_False"
End If
Next y
jmp:
Next z
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
在此先感谢
使用查找命令来查找细胞符合所需的数据。 –
@ Grade'Eh'Bacon是正确的。如果您仍然需要使用阵列,则可以直接从范围加载它们。 'ent = rng1'(注意那是n,1个数组)。 –
这应该被移植到[代码评论](http://codereview.stackexchange.com/) - 我已经标记它,所以希望它会被移动。 –