VBA函数与工作表函数表达方式是不一样的,看来你是喜欢用工作表的函数,如果在VBA中使用工作表函数表达方式,需要函数容器对象,你的代码中缺少了。第一句应改为:
if Application.WorksheetFunction.Mod(Abs(Cells(irow, 21)), 27.53) < 0.00001 Then
对于你的问题补充,原因如下:求余数是在两个整数之间进行,你用小数进行时,系统会先将小数四舍五入为整数后再进行,问题中实际上是365除以28余21,所以结果为false。
如果要想达到目的,可将if代码改为:
If Abs(Round(385.42 / 27.529) - 385.42 / 27.529) < 0.00001 Then
在代码中,依然用Mod来返回余数,只是表示方法有出入而已。。
Abs(Cells(irow, 21)) Mod 27.53 < 0.00001
If Abs(Cells(irow, 21)) mod 27.53 < 0.00001 Then
msgbox irow
end if
试试吧
对不起,这个真不会!!!