记录Google电子表格中订单项状态更改的时间戳,同时记录状态更改

时间:2017-10-31 14:37:13

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

我一直在尝试捕获每项任务状态更改的时间戳。任务在行中被提及为任务1,任务2和任务1。等等,它们的状态在col A(任务名称)之后的col 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

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

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

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

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

相关问题