在更改另一个单元格时,将当前日期输入单元格

时间:2014-08-13 11:41:03

标签: google-apps-script google-sheets

我有一个Google电子表格,用于跟踪客户端为应用程序请求的配置信息的状态。例如。文本按下按钮。 我有一个列有'状态'在顶部和单元格' List from Range'下面行中的数据验证。使用的范围包括'与客户',' With Me','已完成'。我还有一个右侧的列,我用它来手动添加上次状态更改时的日期。我想要的是将日期自动更改为今天更改状态的日期。我相信它可以用脚本完成,但我以前从未使用过。

3 个答案:

答案 0 :(得分:14)

另一个答案以一个好主意开始,但不幸的是建议的代码不起作用,因为它有许多基本错误(显然它没有经过测试......)

所以这是一个简单的版本:

function onEdit(e) {
  var sheet      = e.source.getActiveSheet();
  var activeCell = sheet.getActiveCell();
  var col        = activeCell.getColumn();
  var row        = activeCell.getRow();
  if (col == 2 ) { // assuming status is in column 2, adapt if needed
    sheet.getRange(row, col+1).setValue(new Date()).setNumberFormat('MMM dd yyyy');// change the display format to your preference here
  }
}

答案 1 :(得分:1)

     column 'Status'    column 'date'
row 'List from Range'   12-08-20014
row 'Data Validation'   -----------

范围{'与客户','与我','完成'}

如果您打开脚本编辑器并添加以下代码,请使用相关值替换BOLD TERMS。 onEdit()不需要触发器,因为它是一个'特殊'函数,除非你共享工作表并需要otehrs以开发人员权限运行它。

onEdit() {
  var sheet      = e.source.getActiveSheet();
  var col        = activecell.getColumn();     //  numeric value of column, ColA = 1
  var row        = activecell.getRow();        //  numeric value of row
  if (col == PUT IN THE NUMBER OF YOUR COLUMN 'Status') {
    sheet.getRange(row, col+1) = Date();
}

答案 2 :(得分:1)

function onEdit(e) {
   var sheet      = e.source.getActiveSheet();
   var activeCell = sheet.getActiveCell();
   var col        = activeCell.getColumn();
   var row        = activeCell.getRow();
   if (col == 2) {
     sheet.getRange(row, 1).setValue(new Date()).setNumberFormat('dd/MM/yyyy H:m:s');
  }
}