0

ここで私の問題が何であるかわかりません。オフィスの訪問者に Google スプレッドシートにサインイン/サインアウトしてもらいます。これが私がそれを機能させようとしている方法です。訪問者が「in」列のチェックボックスを選択すると、次の列にタイムスタンプが表示されます。訪問者が「out」列のチェックボックスを選択すると、次の列にタイムスタンプが表示されます。現在、これがどのように機能しているかです。コード エディターに最初の関数しかない場合、タイムスタンプが列 4 に表示されます。2 番目の関数を追加すると、タイムスタンプが列 6 に表示されますが、列 4 には表示されません。2 番目の関数が最初の関数をオーバーライドしているようです。問題を修正するものは何ですか?

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "SignInOut" ) { //checks that we're on the correct sheet
    var r = s.getActiveCell();
    if( r.getColumn() == 3 ) { //checks the column
      var nextCell = r.offset(0, 1);
      if( nextCell.getValue() === '' ) //is empty?
        nextCell.setValue(new Date());
    }
  }
}

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "SignInOut" ) { //checks that we're on the correct sheet
    var r = s.getActiveCell();
    if( r.getColumn() == 5 ) { //checks the column
      var nextCell = r.offset(0, 1);
      if( nextCell.getValue() === '' ) //is empty?
        nextCell.setValue(new Date());
    }
  }
}
4

1 に答える 1