我有一个工作表,用户将使用从其结束,有下拉选项“开始,工作,完成”在第C栏要求:一旦用户选择了“完成”,下拉必须被禁用,用户不应该有更多的更改,该单元格。
在这个场景中是否有任何可能的工作。
SS:https://docs.google.com/spreadsheets/d/1tmnDOMyupjeO8d65qHQsxb5KrrKeq7pMYIE8h2VmEJ4/edit?usp=sharing
发布于 2022-06-15 08:08:18
我相信你的目标如下。
在这种情况下,保护细胞怎么样?当这反映在一个示例脚本中时,如下所示。
示例脚本:
在这种情况下,使用可安装的OnEdit触发器。那么,installedOnEdit.
当您使用此脚本时,请将"Sheet1“的"C”列的下拉列表更改为“已完成的”,用户不是电子表格的所有者。这样,细胞就得到了保护。
在电子表格所有者的情况下,所有者可以更改受保护的下拉列表。当所有者将下拉列表从“已完成”更改为另一个值时,保护将被删除。
function installedOnEdit(e) {
const range = e.range;
const sheet = range.getSheet();
if (sheet.getSheetName() != "Sheet1" || range.columnStart != 3) return;
const p = sheet.getProtections(SpreadsheetApp.ProtectionType.RANGE).find(r => r.getRange().getRow() == range.rowStart);
if (!p && range.getValue() == "Completed") {
const p = range.protect();
p.removeEditors(p.getEditors());
if (p.canDomainEdit()) p.setDomainEdit(false);
} else if (p) {
p.remove();
}
}参考文献:
https://stackoverflow.com/questions/72627634
复制相似问题