首页 > 解决方案 > 谷歌表中是否可以保护某些列,但允许添加/删除行?

问题描述

我正在使用 arrayformulas 填充工作表的某些列,具体取决于其他工作表中的值。有时用户会不小心在这些列中添加一些值,这将阻止arrayformula工作。我想保护这些列,但仍然允许添加/编辑/删除行。

考虑这个示例电子表格:我希望Id行受到保护,但允许添加/删除行。

https://docs.google.com/spreadsheets/d/1Dnj7OE5XZL09gllHVwPgv-5GRoM-lxVCxTCI_-kURdM/edit#gid=0

谷歌表格有可能吗?

标签: google-sheetsgoogle-sheets-formula

解决方案


您不能直接禁用输入,但可以改用数据验证

通过转到数据 > 数据验证并填写以下内容:

单元格范围: YourSheet!C2:C

条件:自定义公式为 - =C2:C = A2:A & "["&B2:B&"]"

无效数据:拒绝输入

外观:可选消息

完成此操作后,尝试在 C 列中填写一些单元格,您将看到一条消息:出现问题 - 您的可选消息

作为另一种方法,您可以使用 Apps Script Simple Triggers

通过转到工具 > 脚本编辑器并复制以下代码:

function onEdit(e) {
  var column = e.range.getColumn();
  var sheet = SpreadsheetApp.getActiveSheet();
  if (column === 3) {
    e.range.setValue("");
  }
}

这更像是一个“撤消”功能。

参考

简单触发器

事件对象 > onEdit


推荐阅读