【问题标题】:Recording timestamp of change in status of a line item in google spreadsheet along with recording the change in status as well记录谷歌电子表格中订单项状态变化的时间戳,同时记录状态变化
【发布时间】:2018-04-12 18:36:43
【问题描述】:

我一直在尝试捕获每个任务状态更改的时间戳。任务在行中被称为任务 1、任务 2 等,它们的状态在列 A(任务名称)之后的列 B 中提及。共享电子表格的用户可以修改任务状态。任务有 5 种状态:P、Q、R、S、T,可以按任何顺序完成(没有一个状态在另一个之后的确定顺序)。一旦有人修改状态,我想捕获时间戳并在下一列中捕获状态,以便状态和时间戳的所有更改都记录在连续列中作为状态 1(P/Q/R/S /T) & 时间戳。对任务状态的所有更改将记录在相应的列中。 我已经想出了使用此代码捕获状态变化的方法:

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "Sheet1" ) {
    var r = s.getActiveCell();
    if( r.getColumn() == 2 ) {
      var nextCell = r.offset(0,2);
      if((nextCell.getValue() == "" && r.value != "")) {
        nextCell.setValue(new Date());
      } else if(nextCell.getValue() != "" && r.value == "") { 
        nextCell.setValue("");
      }
    }
  }
}

这是我工作表的链接:https://docs.google.com/spreadsheets/d/1kQzxu6i5uPYUVtFfMz9sKk6FiRKfiqzB92unBap9rF8/edit?usp=sharing

我们将不胜感激。

【问题讨论】:

  • 您的代码似乎没有尝试解决您的问题。事实上,您的代码看起来与您的previous question 几乎完全相同。如果您尝试解决自己的问题并仅在遇到问题时提出问题,我们将不胜感激。我们的目标是,在某些时候,您的经验将产生回答您自己问题的能力,这需要您付出一点努力。

标签: google-apps-script google-sheets timestamp


【解决方案1】:

这是您上一个问题的代码:

function onEdit()
{
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "Sheet1" ) {
    var r = s.getActiveCell();
    if( r.getColumn() == 4 ) {
      var nextCell = r.offset(0,1);
      if((nextCell.getValue() == "" && r.value != "")  ||  (nextCell.getValue() != "" && r.value != "")) {
        nextCell.setValue(new Date());
      } else if(nextCell.getValue() != "" && r.value == "") { 
        nextCell.setValue("");
      }
    }
  }
}

它看起来与您当前的问题非常相似。在寻求其他帮助之前,请尝试回答您自己的问题。

【讨论】:

    猜你喜欢
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    • 2019-04-05
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多