如果单元格 B 大于单元格 G,则清除单元格 J

如果单元格 B 大于单元格 G,则清除单元格 J

我正在尝试实施一个基本的库存控制系统。

该项目可以找到这里以及一张图片这里

基本上,当库存低于重新订购水平(B <= G)时,“订购库存?”列 (I) 应显示“是”。当员工订购库存时,他们会将“已订购?” (J) 列标记为“是”。这应该会导致“订购库存?” (I) 列为空白。到目前为止,这种方法有效。

问题是,当我们获得更多库存时,这会输入到“已收货”表中,从而更改库存数量 (B) 值。我想要的是,如果 B > G,则清除 J。这似乎不起作用,但我不知道为什么。

我使用的 VBA 代码是:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
Application.EnableEvents = False
If Cells(Target.Row, 2) > Cells(Target.Row, 7) Then
    Cells(Target.Row, 10).Value = ""
Else
    Cells(Target.Row, 9).Value = "Yes"
End If
Application.EnableEvents = True
End Sub

如果有人能给我指明正确的方向,我将不胜感激。

答案1

下午好!

实际情况是,在 Received 表中输入数据不会触发 Stock 表的 Worksheet_Change。当您更改 Received 表中的数据时,由于 Stock 表的 B 列中有一个公式,因此触发的事件是 Worksheet_Calculate。

我已经上传了更改的内容这里我在这里为您制作了已接收工作表更新数据的 Worksheet_Change。

如果有其他问题请随时提问。

此致!

相关内容