当活动单元格值为#DIV / 0时,如何设置消息框弹出窗口
Dim GP
GP = "=(" & "Sheet1_Revenue!" & INR1Value & "-" & "Sheet2_Cost!" & INR2Value & ")/" & "Sheet1_Revenue!" & INR1Value
Sheets("Sheet2_Cost").Cells(I + 3, J).Select
ActiveCell = GP
Selection.NumberFormat = "0.00%"
With Selection.Interior
.Color = 65535
End With
If ActiveCell.Value = "#DIV/0!" Then
MsgBox "Not an Error: Kindly feed INR values under Sheet1_Revenue"
End If
我尝试了If ActiveCell.Value =
以及If GP.Value =
,但两者都无效,请帮助我了解如何解决此问题。
先谢谢
答案 0 :(得分:1)
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
答案 1 :(得分:1)
替换:
If ActiveCell.Value = "#DIV/0!" Then
使用:
If ActiveCell.Text = "#DIV/0!" Then
假设我们从:
开始此代码:
Sub ErrorGrabber()
MsgBox ActiveCell.Value
End Sub
将产生:
但是这段代码:
Sub ErrorGrabber()
MsgBox ActiveCell.Text
End Sub
将产生:
答案 2 :(得分:1)
“陷阱”"#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