LANG SELRCT

Google Apps Scriptのコードを書く場所  (新規作成: スプレッドシート | スクリプトエディタ

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



関連記事

最新の投稿

マイドライブを指定してファイルを保存したい(DriveApp.getRootFolder())

以前書いた CSVデータを作ってGoogleドライブに保存する では、特定のフォルダを指定して保存しました。 ここでは「マイドライブ」に保存するコードを書きました。 save_as_csv()を実行すると マイドライブにvar dataで設定したデータが保存されて そのファイル...