Google Apps脚本-如何使用今天的日期和参考日期锁定一系列数据

时间:2019-10-11 15:23:29

标签: google-apps-script

我想在以日期为参考填充一行数据之后将其锁定。每次捕获数据时,日期将自动记录在Google工作表的A列中。使用该记录的日期作为参考,并将其与今天的日期进行比较。如果相差4天,则该行将被锁定并且无法进行编辑。

1 个答案:

答案 0 :(得分:2)

答案:

您可以锁定Google表格的范围,以防止使用Range.protect()方法进行编辑。

示例代码:

您需要使用Range.protect()方法创建保护范围,该方法定义了所需的范围。按照Apps脚本示例:

function doProtections() {
  var ss = SpreadsheetApp.getActive();
  var range = ss.getRange('A1:Z1'); // Example of protecting Row 1
  var protection = range.protect().setDescription('Protected range name');

  var me = Session.getEffectiveUser();
  protection.addEditor(me);
  protection.removeEditors(protection.getEditors());
  if (protection.canDomainEdit()) {
    protection.setDomainEdit(false); 
  }
}

然后您可以创建每天运行的Installable Trigger,将当前日期与所需单元格中的日期进行比较:

function runEachDay() {
  var today = new Date()
  var dateToCheckAgainst = new Date(SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getRange('A1').getValue())

  if (today.getTime() - dateToCheckAgainst.getTime() > 345600000) {
    doProtections();
  }
}

注意:345600000的比较是一个Unix时间-345600000ms等于4天,因此,如果自您要检查的单元格中的日期起经过了4天以上(在我示例函数A1),则代码将运行。

参考文献: