我创建了一个 Excel 数据库。在某一列,我只能输入“是/否”。我希望的是,如果我输入“否”,则该行中该单元格后面的所有单元格都将显示 N/A。但是,如果答案是“是”,我希望这些单元格能够接受输入。
鉴于这必须适用于整个表格和每个新添加的行,并且我可能会返回并将答案更改为“否”,因此我不能依赖公式。我如何才能始终确保单元格值根据重要单元格是否包含“是”或“否”进行调整?
例子:
Cols A B C D E
Row1 Yes 12 Some 1 3
Row2 No N/A N/A N/A N/A
注意:为了防止影响,D 列和 E 列有数据验证,只能接受预设列表中的答案。为了以防万一,我在此列表中添加了“N/A”。
答案1
您可以在 VBA 中编写一个事件过程(类型为 Worksheet_SelectionChange),检查表中的 A 列是否是目标区域,并有条件地用“N/A”文本填充单元格。但这会丢弃之前输入的所有值。
作为一个简单的替代方案,我建议使用条件格式。条件是
=(TOLOWER($A4)<>"yes")
对于第 4 行的单元格,如果为 True,格式将是相同的文本颜色和图案颜色。这样,所有内容都会隐藏起来,而值则不会受到影响。毕竟,这是为了在视觉上引导人们输入数据。
答案2
补充一下您的条件格式问题:您的范围可以是方程式,而不是固定范围。这将使 OFFSET 函数特别有用,因为您可以让条件格式自动扩展以包含您的选择。例如:
=Offset(A1,0,0,CountA(A1:A1000),1)
将自动扩展以包含 A 列中的所有内容,最多 1000 行。如果您希望它水平扩展
=Offset(A1,0,0,1,CountA(A1:DZ1))
ETC。
如果中间有分栏符,则此方法会失效。不确定它处理合并单元格的效果如何(尚未测试)对于此类问题,请尝试以下方法:(出于间距原因,给出 5 个空白行的示例)
=Offset(A1,0,0,CountA(A1:A1000)+5,1)
等等。希望这能帮助您解决“但我需要继续扩展它”的问题。