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

问题描述 投票:0回答:1

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

google-apps-script
1个回答
1
投票

答案:

您可以锁定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'))

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

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

参考:

© www.soinside.com 2019 - 2024. All rights reserved.