LANG SELRCT

コードを書く場所

2019年3月10日日曜日

行の値が編集された時、特定のヘッダの列に日時を入力したい


特定のヘッダの列に日時を入力したくて書いたコード

この記事でやること
  • ヘッダの値を見て、dateならその列に日時を入力する



日時を入力する条件
  • dataの列が編集された時は入力しない
  • 1行目が編集された時は入力しない
if(col !== targetCol && row > 1)



コード.gs
function onEdit() {
  var header = "date";
  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var range = sheet.getActiveRange();
  var row = range.getRow();
  var col = range.getColumn();
  var date = new Date();
  set_value(sheet, row, col, date, header)
}


function set_value(sheet, row, col, value, header) {
  var headers = get_headers(sheet)[0];
  var targetCol = headers.indexOf(header) + 1;
  if(col !== targetCol && row > 1){
    sheet.getRange(row, targetCol).setValue(value);
  }
}

function get_headers(sheet) {
  var last_col = sheet.getLastColumn();
  var range = sheet.getRange(1, 1, 1, last_col);
  var headers = range.getValues();
  return headers;
}



関連記事