このシートの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;
}
|
関連記事
ヘッダのテキストに一致する列に入力する

