1

コードに少し問題がありました。3 つのコードがありますが、それらを組み合わせることができません。

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

}
4

1 に答える 1

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());
      }
    }
  }
}
于 2012-10-13T23:49:09.663 に答える