嗨,我是excel vba的新手。我编写了这段代码,当一个单元格的值不等于零时自动弹出一个消息框。该单元格取决于单元格A的值减去单元格B的值。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("H60") <> 0 Then
MsgBox "Not Equal zero!!!!"
End If
End Sub
但是,当单元格H60为零时,消息框仍会继续弹出。为什么呢?
答案 0 :(得分:0)
使用.Value2
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("H60").Value2 <> 0 Then
MsgBox "Not Equal zero!!!!"
End If
End Sub
但是我会建议你在那里进行某种测试,以便只针对某些细胞更改,你不希望每次在工作表上发生任何变化时都会触发它。
你提到细胞依赖于其他2个细胞,你可以对那些像这样的细胞进行测试:
Private Sub Worksheet_Change(ByVal Target As Range)
If target.address = "$I$60" or target.address = "$J$60" then
If Range("H60").Value2 <> 0 Then
MsgBox "Not Equal zero!!!!"
End If
end if
End Sub
如果I60或J60是工作表上的更改,这将使它只会触发,如果需要,你可以明显地将这些更改为其他单元格引用,我假设你的公式是使用I60和J60