Excel VBA:当activecell.value出现除法错误时,如何弹出消息框
如何在活动单元格值为#DIV/0时设置消息框弹出窗口 我尝试了Excel VBA:当activecell.value出现除法错误时,如何弹出消息框,excel,vba,Excel,Vba,如何在活动单元格值为#DIV/0时设置消息框弹出窗口 我尝试了如果ActiveCell.Value=以及如果GP.Value=但两者都不起作用。请帮助我了解如何解决此问题 提前感谢当您将一个数字除以零时,Excel会显示值“#DIV/0!”。。。。但是这个值不是字符串。。。。 if语句应该在编程的主要部分,如本例所示 dim a as single, b as single, ans ans single if b = 0 then msgbox "...." else ans = a / b
如果ActiveCell.Value=
以及如果GP.Value=
但两者都不起作用。请帮助我了解如何解决此问题
提前感谢当您将一个数字除以零时,Excel会显示值“#DIV/0!”。。。。但是这个值不是字符串。。。。 if语句应该在编程的主要部分,如本例所示
dim a as single, b as single, ans ans single
if b = 0 then
msgbox "...."
else
ans = a / b
end if
将数字除以零时,Excel会显示值“#DIV/0!”。。。。但是这个值不是字符串。。。。 if语句应该在编程的主要部分,如本例所示
dim a as single, b as single, ans ans single
if b = 0 then
msgbox "...."
else
ans = a / b
end if
替换:
If ActiveCell.Value = "#DIV/0!" Then
与:
假设我们从以下内容开始:
此代码:
Sub ErrorGrabber()
MsgBox ActiveCell.Value
End Sub
将产生:
但是这个代码:
Sub ErrorGrabber()
MsgBox ActiveCell.Text
End Sub
将产生:
更换:
If ActiveCell.Value = "#DIV/0!" Then
与:
假设我们从以下内容开始:
此代码:
Sub ErrorGrabber()
MsgBox ActiveCell.Value
End Sub
将产生:
但是这个代码:
Sub ErrorGrabber()
MsgBox ActiveCell.Text
End Sub
将产生:
到“陷阱”a“#DIV/0!”
是一个两步代码:
If IsError(ActiveCell.Value) Then ' first check if cells contains an error
If ActiveCell.Value = CVErr(xlErrDiv0) Then ' check the type of error
MsgBox "Not an Error: Kindly feed INR values under Sheet1_Revenue"
End If
End If
但是,我认为最好的方法是在执行除法之前检查除数的值
注意:无需使用ActiveCell
,您可以直接在完全限定的范围内运行代码:
With Sheets("Sheet2_Cost").Cells(I + 3, J)
.Value = GP
.NumberFormat = "0.00%"
With .Interior
.Color = 65535
End With
End With
“陷阱”a“#DIV/0!”
是一个两步代码:
If IsError(ActiveCell.Value) Then ' first check if cells contains an error
If ActiveCell.Value = CVErr(xlErrDiv0) Then ' check the type of error
MsgBox "Not an Error: Kindly feed INR values under Sheet1_Revenue"
End If
End If
但是,我认为最好的方法是在执行除法之前检查除数的值
注意:无需使用ActiveCell
,您可以直接在完全限定的范围内运行代码:
With Sheets("Sheet2_Cost").Cells(I + 3, J)
.Value = GP
.NumberFormat = "0.00%"
With .Interior
.Color = 65535
End With
End With
如果iSeries错误(ActiveCell),您可以尝试
,然后改为。另外,为什么不先检查除数值,并在实际除以它之前引发错误?您可以尝试如果IsError(ActiveCell),则改为。另外,为什么不先检查除数值,并在实际除以它之前提出错误?谢谢@Gary's StudentThank你@Gary's StudentThank你@Ammar Abou Zor,这对我来说不实用,因为我的代码使用表1和表2中的一些字段设置公式,因此,除非用户在那里输入值,否则此字段将显示如下。我不希望用户试图在假设这是一个错误的情况下更新它。这条消息只是引导他,使他不会惊慌失措:)无论如何,谢谢,从现在开始“”。文本“”对我来说非常有效…谢谢@Ammar Abou Zor,这对我来说不实用,因为我的代码使用表1和表2中的一些字段设置公式。因此,除非用户在其中输入值,否则此字段将显示如下。我不希望用户试图在假设这是一个错误的情况下更新它。这条信息只是引导他,使他不会惊慌失措:)无论如何,谢谢,从现在起“”。文本“”对我来说非常有效。。。