第一次输入后自动锁定Google表格单元格

时间:2019-01-01 23:53:08

标签: google-sheets google-sheets-formula

我正在尝试将Google表格用作我的业务的销售记录。但是,我想配置一个关于信息输入的具体细节,但目前还无法解决。

我创建了一个表格,您可以在其中输入所有信息(例如日期,出售的商品,总金额等)。一切都与桌子完美搭配。但是,我希望在输入上述信息后立即自动防止任何单元格中的信息发生任何更改。假设有人放了一个数量,然后选择另一个单元格,然后再次尝试更改数量,但是由于保护原因而不能。

我在某个时间找到了一些有关自动锁定的信息:Locking cells in Google Sheets at a specific time,但这不是我所需要的。另外,我还是一个初学者,我认为Google表格中的某些内容已发生变化,因为即使按时间锁定,我也无法使其正常工作。非常感谢您能提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以尝试为以下代码安装一个on edit触发器。

它将从所有已编辑范围中删除所有编辑器(安装触发器的用户和工作表的所有者除外)。还将在保护中添加描述,以便您知道何时完成。

function protectOnEdit(event) {

  var range = event.range;
  var timeZone = Session.getScriptTimeZone();
  var stringDate = Utilities.formatDate(new Date(), timeZone, 'dd/MM/yy HH:mm');
  var description = 'Protected on ' + stringDate;
  var protection = range.protect().setDescription(description);

  // below code taken directly from Google's documentation (second comment is my own):

  // Ensure the current user is an editor before removing others. Otherwise, if the user's edit
  // permission comes from a group, the script throws an exception upon removing the group.

  var me = Session.getEffectiveUser();
  //user who installed trigger

  protection.addEditor(me);
  protection.removeEditors(protection.getEditors());
  if (protection.canDomainEdit()) {
    protection.setDomainEdit(false);
  }
}

Reference