我有一个电子表格,其中包含一个名为“团队分配表”的表。我要两个时间戳;当A列中的任何单元格=“ 9。已关闭/移交”的时间戳,向右移动一个单元格。在L列的任何单元格中输入值时,需要另一个时间戳,要在右侧4个单元格中输入时间戳。
每个人都单独工作,但不能一起工作。
没有编码/谷歌脚本的经验。任何帮助表示赞赏。
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh0 = ss.getSheetByName("Team Allocation sheet");
myFunction1();
if ([11].indexOf(e.range.columnStart) != -1) {
e.range.offset(0, 4).setValue(new Date());
myFunction2();
if ([1].indexOf(e.range.columnStart) == -1 || ['9. Closed/Handed over'].indexOf(e.value) == -1) return;
e.range.offset(0, 1)
.setValue(new Date());}
}
脚本编辑器说:
ReferenceError: "myFunction1" is not defined. (line 4, file "Code")
答案 0 :(得分:0)
尝试一下:
function onEdit(e) {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Team Allocation sheet" ) {
var r = s.getActiveCell();
if( r.getColumn() == 1 ) {
var nextCell = r.offset(0, 1);
var newDate = Utilities.formatDate(new Date(),
"GMT+8", "MM/dd/yyyy hh:mm:ss");
nextCell.setValue(newDate);
}
if( r.getColumn() == 12 ) {
var nextCell = r.offset(0, 4);
var newDate1 = Utilities.formatDate(new Date(),
"GMT+8", "MM/dd/yyyy hh:mm:ss");
nextCell.setValue(newDate1);
}
}
}
答案 1 :(得分:0)
您不需要两个功能。您需要在同一函数中使用两个if
语句。
我还建议您进行检查,以确保编辑事件来自“团队分配表”。否则,即使在其他某些标签上进行了编辑,您也会在此标签上看到时间戳。
function onEdit(e) {
var name = e.source.getActiveSheet().getName(); // Name of the sheet that got edited
var column = e.range.columnStart;
var value = e.value; // New value in cell after editing
if ( name == "Team Allocation sheet" && value == "9. Closed/Handed over" && column == 1) {
e.range.offset(0, 1).setValue(new Date());
}
if ( name == "Team Allocation sheet" && column == 12) {
e.range.offset(0, 4).setValue(new Date());
}
}