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