我想让Google Sheet的用户能够保护工作表中的行。通过将单元格中的值设置为"√" (从下拉列表中)我想保护该行。如果相同或任何其他用户想要更改行中的值,我希望他们能够删除"√"用" - " (也来自下拉列表)。
我正在使用onEdit()事件。
我能够保护所需的范围,但在删除保护时遇到问题,删除()只是不起作用。
我可以通过以下命令获取删除工作,但是发生的事情是protect()只是创建一个新的受保护范围而remove()将其删除。我试图删除别人创建的范围,过去的某个时间。
var result = range.protect()。remove()
我大约8个小时(主要是寻找答案)。
提前感谢你的帮助。
答案 0 :(得分:0)
要删除受保护的范围,您必须通过列出保护来获取它:
// Remove all range protections in the spreadsheet that the user has permission to edit.
var ss = SpreadsheetApp.getActive();
var protections =
ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
var protection = protections[i];
if (protection.canEdit()) {
protection.remove();
}
}
请参阅样本/文档@ https://developers.google.com/apps-script/reference/spreadsheet/protection。致电range.protect()
将始终创建新的保护。