google-sheets - 谷歌表中是否可以保护某些列,但允许添加/删除行?
问题描述
我正在使用 arrayformulas 填充工作表的某些列,具体取决于其他工作表中的值。有时用户会不小心在这些列中添加一些值,这将阻止arrayformula工作。我想保护这些列,但仍然允许添加/编辑/删除行。
考虑这个示例电子表格:我希望Id行受到保护,但允许添加/删除行。
https://docs.google.com/spreadsheets/d/1Dnj7OE5XZL09gllHVwPgv-5GRoM-lxVCxTCI_-kURdM/edit#gid=0
谷歌表格有可能吗?
解决方案
您不能直接禁用输入,但可以改用数据验证
通过转到数据 > 数据验证并填写以下内容:
单元格范围: 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("");
}
}
这更像是一个“撤消”功能。
参考
推荐阅读
- reactjs - 你可以在同一个网站上使用 React 平滑滚动和 React Router Links 吗?
- flutter - RangeSlider 偶尔显示空白标签
- c++ - 如何创建一个 (f)16 重复 n 次的数字?
- javascript - 如何在三行而不是 1 行中显示数据?
- javascript - 累积函数数组中每个函数的返回值
- mysql - 加入 1 到 N 个映射列
- laravel - Laravel 自定义或扩展的 belongsToMany
- c++ - 为什么在键类型中使用引用时 lambda 函数在 std::lower_bound 中不起作用?
- swift - 在 CoreData / SwiftUI 的实体中显示属性中的最高数字
- javascript - 是否有一种技术可以“覆盖”Javascript 中的函数?