【发布时间】:2015-04-30 11:40:29
【问题描述】:
我编写的 VBA 宏存在问题,该宏的部分旨在查找范围内的最低值。该行如下所示:
Min = Application.WorksheetFunction.Min(a0eqB)
Set MinCell = a0eqB.Find(Min, LookIn:=xlValues)
它返回Object variable or With block variable not set 错误。现在,我知道为什么会发生这种情况了——有时Find 会找到Nothing,我学会了如何处理这种情况。虽然,当单元格中显示的值与Min 变量中的值不同时,它也会找到Nothing。
例如Min = -11.2641373534338时,单元格中的值为-11.264137,则出现错误。但是,如果我通过 Excel UI 按钮更改为该单元格显示的小数位数,直到它为 -11.2641373534338,一切正常。如果有帮助,单元格中的值实际上是公式计算结果。
我看到了两种处理这个问题的方法:
- 找出显示的小数位数,然后将实际值四舍五入以使其匹配。但是这种匹配方式实际上可能会出错,因为如果四舍五入到小数点后 2 位,像 11.321 和 11.322 这样的数字将是相同的。此外,这是不可能的,因为我需要找到单元格的地址才能做到这一点,而这是在上面代码的第 2 行中完成的,这会导致问题。
- 不知何故告诉
Find函数使用实际而不是显示的数字,但我不知道该怎么做。我用谷歌搜索了几天,但仍然没有成功。
非常感谢您的帮助。
【问题讨论】: