真实标题:EXCEL VBA:如何处理溢出错误
我在EXCEL宏程序中进行了计算,在某些情况下,解析为大于EXCEL可以处理的数字。例如:
经验值(772.570555209417)
有人可以建议解决此错误的最佳方法吗?我试过了:
If IsError(Exp(n_beta(i, 1) + Abs(WorksheetFunction.Norm_Inv((1 - Conl / 100) / 2, 0, 1)) * logSTDERR(i))) Then
MsgBox ("Error!!")
Exit Sub
End If
在上述情况下:
n_beta(i, 1) + Abs(WorksheetFunction.Norm_Inv((1 - Conl / 100) / 2, 0, 1)) * logSTDERR(i))
解析为772.570555209417。但是,当我运行此代码时,我在IsError()语句上收到溢出错误(VBA编辑器下面以黄色突出显示):
任何帮助或见解表示赞赏。
最佳答案
对于那些感兴趣的人:在Chris和Ron的帮助下,我开发了以下代码来消除“运行时错误'6'溢出”错误:
LNORUB = n_beta(i, 1) + Abs(WorksheetFunction.Norm_Inv((1 - Conl / 100) / 2, 0, 1)) * logSTDERR(i)
If LNORUB > 709.5 Then
MsgBox ("Error!!: Message to the User...")
End
End If
ORUB = Exp(LNORUB)
我认为Ron是正确的:On Error语句也可以作为一种选择,但是,在我的情况下,因为正是乘幂导致了超大数,所以我能够在这种偶然性发生之前就将其捕获,因此避免了完全溢出错误。
非常感谢克里斯和罗恩!
关于excel - 这不是我的问题的描述,但是Stackoverflow不允许我提交我的描述性标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59507183/