首页 > 解决方案 > VBA代码检查公式的结果是否为负,如果为负,则弹出一个说明错误的msgbox

问题描述

我有以下代码,但是此代码正在进行中:

在此处输入图像描述

我的意图是使用表名而不是单元格名(f7 和 h7)。表格中使用的公式是

Pending Quantity (column f) = Total quantity(Column Issue till date (column e) -((issue from FSD Harduaganj (column g)) + (issue from SWC Aligarh (column H))) 

而 VBA 代码是检查 g 或 h 列中输入的数量是否使待处理数量为负数,然后清除输入的数量。

这是当前代码,代码是指 f7 和 h7 但是我打算在整个列上使用它,例如...如果我在下一行输入数据,它应该检查待处理数量是否为负,如果为负,它应该删除/清除该行的 g 或 h 列的最后一个条目。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim entrycell As Range
    Set Target = Me.Range("f7")
    Set entrycell = Me.Range("H7")

    If Target.Value < 0 Then
        MsgBox ("This Value must be a number of zero or greater."), , "Invalid Entry":entrycell.ClearContents
    End If
End Sub

标签: excelvba

解决方案


根据您的描述,试试这个:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 7 Or Target.Column = 8 Then
    If Cells(Target.Row, "F") < 0 Then
        MsgBox ("This Value must be a number of zero or greater."), , "Invalid Entry"
        Application.EnableEvents = False
        Target.ClearContents
        Application.EnableEvents = True
    End If
End If

End Sub

推荐阅读