Excel 2013 – 根据单元格中的输入,在一行中的所有单元格中输入“N/A”

Excel 2013 – 根据单元格中的输入,在一行中的所有单元格中输入“N/A”

我创建了一个 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)

等等。希望这能帮助您解决“但我需要继续扩展它”的问题。

相关内容