【发布时间】:2017-11-03 19:09:56
【问题描述】:
它的工作原理如下:确定刚刚编辑的值是“已完成”还是“已取消”。如果为真,请选择上一列中的“时间戳”值。在名为“mainSheet”的不同选项卡中查找“时间戳”。找到后,将该值写入该行的第 59 列。该代码一直有效,直到出现if(sheetCells[i][0]===TimeStamp) 条件,它无法比较单元格并将 i 的值分配给 rowValue。我已经在循环中运行了 Logger,它确实具有相同的值!我在这里遗漏了什么吗?
function onEdit(e){
var completed = "Completed";
var cancelled = "Cancelled"
var s = SpreadsheetApp.getActiveSheet();
var value = s.getActiveCell().getValue();
if(value == completed || value == cancelled){
var statusColumn = 59, rowValue=0;
var TimeStamp = SpreadsheetApp.getActiveRange().offset(0,-1).getValue();
var mainSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1");
var sheetCells = mainSheet.getDataRange().getValues();
for(var i=1; i<sheetCells.length; i++){
Logger.log(sheetCells[i][0]+" "+TimeStamp);
if(sheetCells[i][0]===TimeStamp){
rowValue = i;
}
}
//sheetCells[rowValue][statusColumn].setValue(value);
Logger.log(rowValue);
}
}
【问题讨论】:
-
我想这里是关于比较日期,所以这可能很有用:stackoverflow.com/questions/492994/…
标签: javascript datetime google-apps-script google-sheets