3

有没有办法使用脚本锁定特定的 Google Apps 工作表?

我有这段代码可以将当前电子表格重命名为您在输入框中输入的任何内容。

// The code below will rename the active sheet to what you enter in the input box
var myValue = Browser.inputBox("Enter: LastMonth - Year");
SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(myValue);
SpreadsheetApp.getActiveSpreadsheet().getRange("A1").setValue(myValue);

我可以在上面的代码中添加什么来锁定我刚刚重命名的同一个工作表,只允许我编辑该工作表。那可能吗?

4

3 回答 3

8
// Enables sheet protection for  this sheet
var sheet = SpreadsheetApp.getActiveSheet();
var permissions = sheet.getSheetProtection();
permissions.setProtected(true);
sheet.setSheetProtection(permissions);

请参阅电子表格服务 -类 PageProtection

于 2012-05-16T17:02:41.703 回答
2

正如@ScampMichael 所说,在电子表格服务中找到以下代码。

如果工作表受到保护,则将用户添加到可以编辑工作表的用户列表中。

// Add the "user@example.com" user to the list of users who can edit this sheet
 var sheet = SpreadsheetApp.getActiveSheet();
 var permissions = sheet.getSheetProtection();
 permissions.addUser('user@example.com');
 permissions.setProtected(true);
 sheet.setSheetProtection(permissions);
于 2013-10-28T22:11:00.883 回答
1

由于当前不推荐使用Class PageProtection ,您可以使用Class Protection来实现相同的目的:

var sheet = SpreadsheetApp.getActiveSheet();
sheet.protect();

要在需要时取消保护,您可以使用以下代码段:

var protection = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0];
 if (protection && protection.canEdit()) {
   protection.remove();
 }
于 2017-04-13T14:15:35.267 回答