无法使用Google表格删除()保护()

时间:2017-05-01 19:18:05

标签: google-sheets-api

我想让Google Sheet的用户能够保护工作表中的行。通过将单元格中的值设置为"√" (从下拉列表中)我想保护该行。如果相同或任何其他用户想要更改行中的值,我希望他们能够删除"√"用" - " (也来自下拉列表)。

我正在使用onEdit()事件。

我能够保护所需的范围,但在删除保护时遇到问题,删除()只是不起作用。

我可以通过以下命令获取删除工作,但是发生的事情是protect()只是创建一个新的受保护范围而remove()将其删除。我试图删除别人创建的范围,过去的某个时间。

var result = range.protect()。remove()

我大约8个小时(主要是寻找答案)。

提前感谢你的帮助。

1 个答案:

答案 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()将始终创建新的保护。