gasでプログラミングしていたら全然解消できないものがある

setValuesは二次元配列をセル範囲に記入するメソッドですから、
forループ内で生成した数値を一つのセルに記入するならsetValueを使います。

ただ、このままだと同じE1セルに重ねて記入するので、
iの値に基づいてセルを1行ずつ縦にずらしてみました。

横にずらしたり、
for文の中で配列を作成しておきfor文を抜けてから
二次元配列としてsetValuesで記入する方法もあります。

js

1function myFunction() {2 3 const ss = SpreadsheetApp.getActiveSpreadsheet();4 5 const sheet5 = ss.getSheetByName('システム'); // ループの外に出しました。6 7 for (let i = 0; i < 6; i++) {8 9 let rand = Math.random();10 11 rand = Math.floor([rand * 9 + 1]);12 13 Logger.log(rand)14 15 // 'E1' → 'E' + (i + 1) setValues() → setValue()16 sheet5.getRange('E' + (i + 1)).setValue(rand);17 18 }19 20}

なお、連結というのが6つの数値を、
例えば '987654' のような文字列とするということなら、
次のコードをご参照ください。

js

1function myFunction3() {2 3 const ss = SpreadsheetApp.getActiveSpreadsheet();4 5 let randomString = '';6 7 for (let i = 0; i < 6; i++) {8 9 let rand = Math.random();10 11 rand = Math.floor([rand * 9 + 1]);12 13 Logger.log(rand)14 15 randomString += rand;16 17 }18 19 const sheet5 = ss.getSheetByName('システム');20 21 sheet5.getRange('E1').setValue(randomString);22 23}

コメントを投稿

0 コメント