我需要在事件来自的另一张纸上创建一个操作。
例如,当“数据”表中的任何单元格被编辑/更改时,将时间戳保存在“其他”表中(在同一电子表格中)。如果它有助于使代码更快,那么即使它具有相同的值,“数据”工作表至少也将始终编辑单元格1,1,因为其他操作会自动转储数据并重写整个“数据”工作表。
主要问题是我不知道将条件语句与之比较的值,因为我不知道看到的值会改变。见下文。
// Dumps the timestamp of the last time the "Data" sheet was edited
function onEdit(e){
var dataSheetLastColumn = thisSpreadsheet.getSheetByName("Data").getLastColumn();
var dataSheetLastRow = thisSpreadsheet.getSheetByName("Data").getLastRow();
var dataSheetEvent = e.source.getSheetByName("Data").getRange(1, 1, dataSheetLastRow, dataSheetLastColumn);
// puts a time-stamp on another sheet
var theOtherSheet = thisSpreadsheet.getSheetByName("Other");
theOtherSheet.getRange(2, 1).setValue(new Date());
}
答案 0 :(得分:1)
尝试一下:
function onEdit(e) {
if(e.range.getSheet().getName()=='Other'){return;}
e.source.getSheetByName('Other').getRange(2,1).setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yyyy HH:mm:ss"));
}
注意:此事件仅在用户编辑时发生。
function onEdit(e) {
if(e.range.getSheet().getName()!='Data' ) {return;}
e.source.getSheetByName('Other').getRange(2,1).setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yyyy HH:mm:ss"));
}