【发布时间】:2015-03-24 01:14:11
【问题描述】:
If Application.WorksheetFunction.Degrees(MaxTheta) > 45 Then
在打开工作簿后子程序第一次运行时,Vba 会在此行中断。当 vba 中断时,变量 MaxTheta 的值为 0.481710873550436。一个消息框显示:“运行时错误'9':被零整除”并突出显示上述行。上面的行不包含 0 甚至是除法。奇怪的是,该错误仅在打开工作簿后发生一次,并且当重置项目并再次运行子程序时,该错误不会发生。
澄清一下,MaxTheta 的所有值都会出现错误,我已经搜索了所有代码行和包含公式的单元格以求被零整除。
当我将这些行拆分为以下行时,vba 在第二行中断(deg = Application.Wor...)
Dim deg As Double
deg = Application.WorksheetFunction.Degrees(MaxTheta)
If deg > 45 Then
在即时窗口中,我输入了 ?Application.WorksheetFunction.Degrees(MaxTheta),它给了我 27.6 - 即使上面的行被零整除。
为什么会发生此错误以及(如果可能)如何防止它发生?
【问题讨论】: