【发布时间】:2015-02-05 16:06:24
【问题描述】:
我需要搜索重复值并在 Excel 电子表格中标记它们。我在D 列中有要验证的数据,而可能重复的数据在K 列中。我需要检查列中的每一行 D 列中的所有行。 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
问题在于它非常很慢。我的意思是检查不可接受的数据需要小时。即使范围设置为1:5000,仍需要 10-15 分钟才能完成。有什么办法让它更快?
【问题讨论】:
-
您如何定义您的搜索?您是否正在检查 D 列中的值是否出现在 K 列中?还是必须不止一次出现在 K 列中?
-
我正在检查
K列中的值是否出现在D列中。D列中可能出现多次,这就是为什么搜索必须检查K中的所有行的原因D中的每一行