首页 > 解决方案 > 在一张 Google 工作表上运行多个时间戳

问题描述

我有一个电子表格,上面有一张名为 Team Allocation sheet 的表格。我想要两个时间戳;当 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")

标签: google-apps-scriptgoogle-sheetsscriptingtimestamp

解决方案


尝试这个:

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);
}
}
}

推荐阅读