我在尝试在特定列中查找特定值。例如,在列
一旦列变窄,Excel 在特定单元格中只显示
B
中查找值为100000
的数据。以下代码仅在该列足够宽以显示完整数字时才有效:
Dim rngSearchRange As Range
Set rngSearchRange = ThisWorkbook.Worksheets(1).Columns(2)
Dim searchTerm As Variant
searchTerm = 100000
Dim rngResultRange As Range
Set rngResultRange = rngSearchRange.Find(What:=searchTerm, lookin:=xlValues, lookat:=xlWhole)
一旦列变窄,Excel 在特定单元格中只显示
#####
而不是 100000
,此时查找方法返回 Nothing
。
有没有一种方法可以根据实际值而不是显示的值来使用find方法?如果没有,是否有替代For Each cell In rng.Cells的方法?最终,我正在寻找使用资源最少的方法。
注意:searchRange只有一列,searchValue要么不存在,要么只存在一次。
注意:有一个关于使用match()的后续问题。 注:有时它似乎能工作,尽管数据和代码都没有更改。不幸的是,我无法重现这个变化。整件事可能确实是一个错误。
lookat:=xlWhole
(因为它不会给我正确的结果),但我尝试添加了lookin:=xlValues
- 没有改变。 - AlbinLookIn:=xlFormulas
在所有情况下都有效。如果您没有指定此参数,它会继承上次使用时的设置。 - SJR