如何将多个代码组合在一起? (JavaScript的)

时间:2012-10-13 23:23:51

标签: javascript google-apps-script

我的代码有点问题:我有3段代码,但我无法将它们组合在一起。

当某些单元格发生变化时,所有三个代码都会将时间戳放在不同的单元格中。 如果我更改单元格A1,则在单元格B1中插入时间戳。如果更改单元格A2,则在单元格B2中插入时间戳等

你能帮帮我吗?感谢。

1)

function onEdit(event) {


  var tsheet = 'Заявки' ; 

  var lcol = 17; 
  var rcol = 17; 
  var tcol = 18;


  var s = event.source.getActiveSheet();
  var sname = s.getName();
  if (sname == tsheet) {
    var r = event.source.getActiveRange();
    var scol = r.getColumn();
    if (scol >= lcol && scol <= rcol) {
      s.getRange(r.getRow(), tcol).setValue(new Date());
    }
  }

}

2)

function onEdit(event) {


  var tsheet = 'Заявки' ; 

  var lcol = 15; 
  var rcol = 15; 
  var tcol = 16;


  var s = event.source.getActiveSheet();
  var sname = s.getName();
  if (sname == tsheet) {
    var r = event.source.getActiveRange();
    var scol = r.getColumn();
    if (scol >= lcol && scol <= rcol) {
      s.getRange(r.getRow(), tcol).setValue(new Date());
    }
  }

}

3) 

function onEdit(event) {


  var tsheet = 'Заявки' ;

  var lcol = 9; 
  var rcol = 9; 
  var tcol = 8;


  var s = event.source.getActiveSheet();
  var sname = s.getName();
  if (sname == tsheet) {
    var r = event.source.getActiveRange();
    var scol = r.getColumn();
    if (scol >= lcol && scol <= rcol) {
      s.getRange(r.getRow(), tcol).setValue(new Date());
    }
  }

}

1 个答案:

答案 0 :(得分:0)

将列规范放在数组中:

function onEdit(event) {

  var tsheet = 'Заявки' ;
  var colspec=[[17,17,18],[15,15,16],[9,9,8]];

  var s = event.source.getActiveSheet();
  var sname = s.getName();
  if (sname == tsheet) {
    var r = event.source.getActiveRange();
    var scol = r.getColumn();
    var i=colspec.length;
    while (i>0) {
      i--;
      if (scol >= colspec[i][0] && scol <= colspec[i][1]) {
        s.getRange(r.getRow(), colspec[i][2]).setValue(new Date());
      }
    }
  }
}