我有一些简单的代码来查找范围的最大值,然后返回最大值所在的行。出于某种原因,有些情况下Match
返回Error 2042
,但大部分时间运行成功。当我搜索的值是同一范围的最大值时,它如何在范围内找不到匹配?为什么Application.Match()不一致?
范围中的值是具有许多有效数字的百分比(例如0.992149823976789%)。
Sub test()
dim rng as range
Set rng = Range("A1:A100")
rng_max = application.max(rng)
max_row = application.match(cdbl(rng_max), rng.value, 0)
End Sub
如何为'rng_max'声明,你为什么要'cdbl(rng_max)',和它发生的时候你同时调用'max'和'match'(在'rng'或'rng.value'上,但不是两者)? – GSerg
我还没有在任何地方声明rng_max。在我看到有关Match的问题的其他帖子后,我使用了CDbl。我只是尝试使用rng.value而不是rng来查看它是否有帮助,并且它确实适用于一些值,但显然不是全部。它可能什么都不做,但我也不认为它会受到伤害。 – user1964692
尝试将'rng_max'声明为某物(比如'Double'),不要使用'CDbl'并且调用'max'和'match'在同一件事情上。 [浮点数学不会被破坏](http://stackoverflow.com/q/588004/11683),但是如果你先来来回地强迫数值,然后期望它们完全匹配,它将会是你的。 – GSerg