前提・実現したいこと
GASの配列を使用して文字入力する速度を速めたい
発生している問題・エラーメッセージ
以下のコードで上記に記載の内容を実現したいのですが、
処理速度が遅く、現場で使用できるレベルではありません。
該当のソースコード
GAS
1function 勤怠() { 2 var sheet1 = SpreadsheetApp.openById('*********'); 3 var date = new Date(); //現在日時のDateオブジェクトを作る 4 var day = date.getDate();//現在の「日」を取得 5 date.setDate(day+1);//前日日付にしたいので-1する 6 var yesterday = Utilities.formatDate(date, 'JST', 'MM');//日付の表示形式を整形する 7 var sh1 = sheet1.getSheetByName("勤怠"); 8 var sh5 = sheet1.getSheetByName(yesterday + '月1部');//【ト 9 var col = sh5.getRange(7,3).getValues(); 10 var i = sh5.getRange(sh5.getMaxRows(), 5).getNextDataCell(SpreadsheetApp.Direction.UP).getRow() 11 var ary1 = sh5.getRange(10,col,i,1).getValues(); 12 var ary2 = sh5.getRange(10,6,i,1).getValues(); 13 var ary3 = sh1.getRange("A6:A32") 14 for(let j = 0; j < ary2.length ;j++){ 15 var KEY=ary2[j][0] 16 if (ary3.createTextFinder(KEY).findNext()) { 17 Logger.log("存在します!"); 18 ary1[j][0]="欠勤" 19 sh5.getRange(10+j,col).setValue(ary1); 20 } 21 } 22}
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
回答2件
あなたの回答
tips
プレビュー