我正在 Excel 中建立库存控制系统。
每个项目均包含以下内容:
- 库存数量
- 重新排序级别
- 订购库存?
- 已下单?
这个想法是,当数量 <= 重新订购水平时,该产品的“订购库存?”单元格将显示“是”并使用条件格式以红色突出显示。这已实现,是一个简单的 IF 语句。应该发生的是,如果此框显示“是”,工作人员可以从有序列的下拉列表中选择空白或“是”,以便其他工作人员不会重新订购同一产品。同样,这有效。
问题是,当订单库存单元格为空时,我想清除“已订购?”单元格。这意味着当产品交付并更新数量时,“已订购?”单元格不会再显示“是”。
我已阅读了互联网上的大量 Excel 教程,但似乎没有一个适合这个问题。我尝试使用 IF(AND(),List,"") 命令,但被 Excel 拒绝。
希望这有意义。提前致谢。
编辑:
我仍在为此苦苦挣扎。我使用了建议的代码的略微变体作为答案:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim oS As Long, i As Integer
oS = Cells(Rows.Count, "I").End(xlUp).row
' Loop through each row, I = "Reorder?" and J = ""
If Target.Column = 2 Then
For i = 1 To oS
' If I is blank, set J to blank
If Cells(i, "I").Value = "" Then
Cells(i, "J").Value = ""
End If
' If J is Yes, set I to blank
If Cells(i, "J").Value = "Yes" Then
Cells(i, "I").Value = ""
End If
Next i
End If
End Sub
但是当我编译它然后保存工作簿时,似乎没有任何效果。工作簿可以在这里如果有人想玩的话。
答案1
据我所知,您无法用函数控制包含该函数的单元格以外的其他单元格,也无法将函数添加到启用了数据验证的单元格。如果我错了,请告诉我。
因此,我采用的方法是使用 VBA。我能想到的最简单的方法如下:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim oS As Long, i As Integer
oS = Cells(Rows.Count, "I").End(xlUp).Row
If Target.Column = 2 Then
For i = 1 To oS
If Cells(i, "I").Value = "" Then
Cells(i, "J").Value = ""
End If
Next i
End If
End Sub
输入“股票”工作表的代码。也许经过一些修改后,它就可以正常工作?