前提・実現したいこと
配列内の情報(数字)の回数だけ空白行を挿入してから貼り付けるプログラムを作成しています。
空白行は対象の後ろに追加して、最終的にはCSVデータからやりたいため、貼り付けした後にinsertRows()等は使用したくありません。
諸々プログラムはできたのですが、空白を作成する段階で、賢いやり方が見つからない状態になっています。
発生している問題・エラーメッセージ
貼り付けた後のセルがNOT_FOUNDになる。
該当のソースコード
GAS
1function test(){ 2 var ss = SpreadsheetApp.getActiveSpreadsheet(); 3 var ssIn = ss.getSheetByName('TEST') 4 var arr = ssIn.getRange(1,1,11,3).getValues(); 5 var arr2 = [] 6 7 arr2.push(arr[0]);//最初の行だけ取り出してます。 8 arr.shift()//最初の行は数字じゃないので予め消しておきます。 9 var arrBlank = []; 10 arrBlank.length = arr[0].length;//空白行の生成と列の同期 11 12 13 for(var a in arr){ 14 var b = arr[a][0]; 15 arr2.push(arr[a]);//最初の行は必ず取り出す。 16 do{ 17 if(b == 0){break;} 18 arr2.push(arrBlank);//空白行挿入 19 b -= 1 20 } 21 while(b >= 0); 22 } 23 24 Logger.log(arr2) 25 ssIn.getRange(1,6,arr2.length,arr2[0].length).setValues(arr2) 26} 27 28 29
試したこと
var arrBlank = [];を
var arrBlank = ['','',''];にすれば解決できるのですが、それでは列数の変動に対応できない状況です。
また、事前にNOT_FOUNDをreplace等しようとすると、for文を使用するため、
「undefined からプロパティ「length」を読み取れません。」となります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/28 04:28