このシートのB列に
スクリプトでデータを一気に入れたい
2列目を決め打ちするのではなく
一行目で B列 という文字を見つけてその列に入力したい
そのために
getTargetCol(sheet, value){} という関数を作って
その中の getHeaders(sheet){} で一行目の文字列をすべて取得して
headers.indexOf(value)+1 で対象の列を見つけて
range.setValues(values) で値を一気に入れます
コード.gs
function setValuesToCol() { var sheet = SpreadsheetApp.getActiveSheet(); var value = 'B列'; var targetCol = getTargetCol(sheet, value); var lastRow = sheet.getLastRow(); var values = []; for(var row = 2; row < lastRow+1; row++) { var value = 'abc' + row; values.push([value]); } var range = sheet.getRange(2, targetCol, values.length, 1); range.setValues(values) } function getTargetCol(sheet, value) { var headers = getHeaders(sheet)[0];//ヘッダ行(一行目)[[,,,]]の[0]を取得する var col = headers.indexOf(value) + 1;//ヘッダの中で対象のvalueを探す return col; } function getHeaders(sheet) { var last_col = sheet.getLastColumn(); var range = sheet.getRange(1, 1, 1, last_col); var headers = range.getDisplayValues(); return headers; } |
関連記事
ヘッダのテキストに一致する列に入力する