3

有谁知道是否可以为谷歌电子表格制作一个谷歌应用脚​​本,如果发生特定情况,它可以保护特定的单元格?外汇。如果 X 出现在“A1”中,那么“A2”应该受到保护吗?

4

5 回答 5

1

它不是。我不相信这是细胞保护的工作方式。一个单元被手动保护,或者根本没有保护。

没有启用该功能的单元函数或脚本对象。

于 2012-11-08T02:17:35.843 回答
1

目前还没有用于管理单元保护的 API。此功能请求要求这样做。您可能希望为它加注标以跟踪更新并为它投票。

于 2012-11-08T09:44:34.743 回答
1

Henrique G. Abreu 提到的“功能请求”已修复。参考评论#165

今天,我们推出了使用 Apps 脚本以编程方式创建和操作受保护范围和受保护工作表的功能。

借助电子表格服务中的新保护类,您的脚本可以触及范围或工作表保护的各个方面,就像在新 UI 中一样。(旧的 PageProtection 类具有更多有限的功能,将被弃用,但会继续使用,以防您需要使用旧电子表格。新的保护类仅适用于较新版本的表格。)

您可以在此处找到更多详细信息:

http://googledevelopers.blogspot.com/2015/02/control-protected-ranges-and-sheets-in.html

https://developers.google.com/apps-script/releases/#february_2015

https://developers.google.com/apps-script/reference/spreadsheet/protection

于 2018-05-17T12:58:06.997 回答
0

我知道这是一个老问题,但谷歌“feture request”(由 Henrique Abreu 发布)直到现在(2014 年底)还没有进展

我的预感:当用户被要求编辑之后被锁定的单元格(通过标准或另一种逻辑)时,这种功能将是谷歌表单(http://www.google.com/forms/about )的一种解决方法

我最近在我的工作场所遇到了类似的情况,我的解决方案非常简单——制作一个表格并与相关用户分享。表单域将使用户能够填写他们应该被锁定的数据。该表格最终会生成一张信息表(每次填写表格时都会在线更新)。使用另一个工作表中的“ IMPORTRANGE ”(https://support.google.com/docs/answer/3093340?hl=en)将导致查询相关工作表中的“锁定”信息。因为数据在另一张纸内并表示为公式 - 它不能被编辑(至少不能作为数据)

我真的在考虑一个真正的解决方法,它实际上可以“锁定”一个单元格(通过脚本将其值替换为原始值)..如果有这样的请求

于 2014-12-16T09:18:42.923 回答
-2

我有一个解决方法,代码如下

function protect_named_range(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var target_sheet = ss.getSheetByName('Sheet1');//change "sheet1" for the sheet your range is in
  var array_range1 = target_sheet.getRange("A1:A1");
  var array_range2 = target_sheet.getRange("A2:A2");
  var range_test = array_range1.getValue();// or getFormula or what ever you want to test
  if(range_test == "correct answer"){ //if cell A2 = "correct answer" then cell B2 becomes a named range called "named_range"       
    ss.setNamedRange("named_range", array_range2);
   SpreadsheetApp.setActiveSheet(target_sheet);
   var sheet = SpreadsheetApp.getActiveSheet();
   var permissions = sheet.getSheetProtection();
   permissions.setProtected(true);
   target_sheet.setSheetProtection(permissions);
  }
 }

对不起,我已经离开一段时间了。这是我将使用的基本代码,但是如果单元格 A2 =“正确答案”,它实际上并不保护范围“B2”。相反,如果单元格 A2 =“正确答案”,它会保护名为“sheet1”的工作表,以便只有电子表格所有者可以编辑工作表上的任何内容。

我知道这不是你所追求的,但我希望它能有所帮助。

于 2012-11-08T21:12:15.603 回答