我仍然在尝试创建一个时间触发器,它检查复选框是否在那天被编辑为'true‘,并在下一列中创建一个时间戳,以显示它最后一次被编辑的时间。这是我下面的代码,我甚至还没有让它运行。显示:找不到方法setValues(字符串)。第12行。
function myFunction(event) {
var timeZone = Session.getScriptTimeZone();
var timestampFormat = "MM-dd-yyy hh:mm:ss";
var now = new Date();
var actRng = SpreadsheetApp.getActive().getRange("C2:C200");
var editColumn = actRng.getColumn();
var index = actRng.getRowIndex();
var sheet = SpreadsheetApp.openById("1_LMkYec4CymMQZ6vdCswkr2UGiGPIOGLlLBMlLYEw3k");
var checkRange = sheet.getRange("C:C");
var checkBox = sheet.getRange("B:B");
if (checkBox.getValue() == true) {
checkRange.setValues(Utilities.formatDate(now, timeZone, timestampFormat));
}
}
发布于 2019-04-25 06:32:55
只需使用onEdit():
我希望您能意识到,如果没有事件对象,则无法运行此函数。当其他人正在使用电子表格时,它可能必须是一个可安装的触发器。
function onEdit(e) {
if(e.range.getSheet().getName()!='WhatEverSheetNameYouPutHere') return;
if(e.range.columnStart==2 && e.value=="TRUE") {
e.range.offset(0,1)=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM-dd-yyy hh:mm:ss");
}
}
https://stackoverflow.com/questions/55835229
复制相似问题