Javascript 向移动的行添加时间戳
这是我在按下复选框时用来移动一行的函数,它工作得很好,我只想在移动的行旁边添加一个时间戳,以注册时间,但我做不到Javascript 向移动的行添加时间戳,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,这是我在按下复选框时用来移动一行的函数,它工作得很好,我只想在移动的行旁边添加一个时间戳,以注册时间,但我做不到 function onEdit(event) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = event.source.getActiveSheet(); var r = event.source.getActiveRange(); if(s.getName() == "main"
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "main" && r.getColumn() == 4 && r.getValue() == true) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Completed");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
这应该能奏效。不是将行移动到另一个工作表,而是获取行数据,将时间戳作为新列添加到行数据,然后将此数据作为新行附加到另一个工作表
if(s.getName() == "main" && r.getColumn() == 4 && r.getValue() == true) {
var row = r.getRow(),
numColumns = s.getLastColumn(),
targetSheet = ss.getSheetByName("Completed"),
rowData = s.getRange(row, 1, 1, numColumns).getValues()[0];
rowData.push(new Date());
targetSheet.appendRow(rowData);
s.deleteRow(row);
SpreadsheetApp.flush;
}
编辑对建议作者的提示:编辑时请不要更改大括号样式。这是一个代码风格的首选项,请努力保持它。Allman样式也是JS brace样式的罕见选择。