gpt4 book ai didi

vba - 加速 Excel VBA 搜索脚本

转载 作者:行者123 更新时间:2023-12-03 02:45:24 25 4
gpt4 key购买 nike

我需要搜索重复值并将其标记在 Excel 电子表格中。我的数据在 D 列中进行验证,可能重复的数据在 K 列中。我需要检查 D 列中的每一行以及 col 中的所有行。 K

这是我当前的脚本:

Sub MySub()
Dim ThisCell1 As Range
Dim ThisCell2 As Range
For Each ThisCell1 In Range("D1:D40000")
'This is the range of cells to check
For Each ThisCell2 In Range("K1:K40000")
'This is the range of cells to compare
If ThisCell1.Value = ThisCell2.Value Then
If ThisCell1.Value <> "" Then
ThisCell1.Interior.ColorIndex = 3
End If
Exit For
End If
Next ThisCell2
Next ThisCell1
End Sub

问题是它非常慢。我的意思是需要几个小时来检查数据,这是 Not Acceptable 。即使范围设置为 1:5000,仍然需要 10-15 分钟才能完成。有什么办法可以让它更快吗?

最佳答案

字典将是实现您正在寻找的内容的最快方法。不要忘记在项目中添加对“Microsoft 脚本运行时”的引用

Sub MySubFast()
Dim v1 As Variant
Dim dict As New Scripting.Dictionary
Dim c As Range

v1 = Range("D1:D40000").Value
For Each c In Range("K1:K40000")
If Not dict.Exists(c.Value) Then
dict.Add c.Value, c
End If
Next

Dim i As Long
For i = LBound(v1, 1) To UBound(v1, 1)
If v1(i, 1) <> "" Then
If dict.Exists(v1(i, 1)) Then
Range("D" & i).Interior.ColorIndex = 3

End If
End If
Next i
End Sub

注意:这是对 @Jeanno 答案的改进。

关于vba - 加速 Excel VBA 搜索脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28348630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com