如果 D 列中有金额,则我尝试要求在 A 列中填充一个值。A 列可以包含任何类型的值(文本或数字),D 列只能是数字。
因此,例如,如果单元格 D1 是 11,则单元格 A1 将需要一个值,并且理想情况下会弹出一条消息提醒用户注意问题。
我研究过数据验证功能,但它似乎只根据单元格的值来验证单元格。如果可能的话,我还不知道如何让数据验证根据一个单元格的值来验证另一个单元格。
有任何想法吗?
编辑以添加 - 我尝试这样做是因为我有一列美元金额(D 列)。A 列应为与 D 列中的美元金额相关联的发票号。D 列中的每个金额都必须在 A 列中有一个发票号。我已经在电子表格中设置了条件格式,显然鲜红色的单元格颜色不足以表明“您做错了什么”,供填写电子表格的个人使用。
答案1
您可以从工作表的 VBA 开始,进行相应调整
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then
Exit Sub
End If
ActiveSheet.Unprotect
If IsEmpty(Target) Then
Target.Offset(, 1).Clear
Target.Offset(, 1).Locked = True
Else
Target.Offset(, 1).Locked = False
End If
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
答案2
您可以使用风俗选项中的数据验证对话框(设置选项卡)。选择 D 列中的数据并单击数据验证。 选择风俗在里面允许下拉列表,输入公式:
=OR(ISBLANK(A1),NOT(ISBLANK(D1)))
确保忽略空白也未选中。
不幸的是,如果值为空(例如输入一个值然后删除它),似乎不会触发弹出窗口。您可以通过选择圈出无效数据按钮,但它永远不会给你弹出消息。(我讨厌那些弹出窗口!)你可以把这个公式放在另一列中,也许在表格中
=IF(OR(ISBLANK(A1),NOT(ISBLANK(D1))),"","Enter a value")
或者您可以使用条件格式来突出显示无效的单元格。