#前提・実現したいこと
GASで請求書を作成しています。
1)判定(J列)が〇かつ追加事項(O列)に記載があれば、
月(A列)・日(B列)・項目名(C列)・備考(D列)・追加事項(備考の1行下)に転記
2)判定(J列)が〇かつ追加事項(O列)が空欄であれば、
月(A列)・日(B列)・項目名(C列)・備考(D列)に転記
をしたいのですが、反映されずエラーができます。
どこを修正したらよいのでしょうか?お教えください。
|A|B|C|D||J|K|L|M|N|O|
|:--|:--:|--:|
|月|日|項目名|備考||判定|日付|項目名|備考|フラグ|追加事項|
|8|2|A商品|在庫あり||〇|8月2日|A商品|在庫あり|✔|先方確約済み|
||||先方確約済み||〇|8月3日|B商品Cabell|不明|✔||
|8|3|B商品|不明|||8月3日|A商品|在庫不明|✔||
|8|4|C商品|在庫あり||〇|8月4日|C商品|在庫あり|✔||
GoogleAppsScript
1function 表示() { 2 3//スプレッドシートAppを呼び出す 4var ss = SpreadsheetApp.getActiveSpreadsheet(); 5//アクティブシートを取得する 6var sheet = ss.getSheetByName("請求書");//data反映先 7var range = sheet.getRange("A11:I90"); 8 9sheet.unhideRow(range); 10sheet.getRange(11, 1, 34, 7).clearContent(); 11 12var range = sheet.getRange('J:O'); //J~O列に値を抜く 13var LastRow = range.getLastRow(); 14var data = sheet.getRange(11, 1, LastRow, 6).getValues(); 15for (var i = 0; i <= data.length; i++){ 16 if(data[i][0] ==="〇"){//J列が〇だったら 17 if(data[i][4]!==""){ //O列に文字列が入力されていたら 18 sheet.getRange(i, 1).setValue(data[i][1]);//A列にK列を転記 19 sheet.getRange(i, 2).setValue(data[i][1]);//B列にK列を転記 20 sheet.getRange(i, 3).setValue(data[i][2]);//C列にL列を転記 21 sheet.getRange(i, 4).setValue(data[i][3]);//D列にM列を転記 22 sheet.getRange(i + 1, 4).setValue(data[i][4]);//D列(1つ下の行)にM列を転記 23 } 24 else{ //O列が空白なら 25 sheet.getRange(i, 1).setValue(data[i][1]);//A列にK列を転記 26 sheet.getRange(i, 2).setValue(data[i][1]);//B列にK列を転記 27 sheet.getRange(i, 3).setValue(data[i][2]);//C列にL列を転記 28 sheet.getRange(i, 4).setValue(data[i][3]);//D列にM列を転記 29 } 30 } 31 } 32}
エラーメッセージ
TypeError: undefined からプロパティ「0」を読み取れません
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/08/19 07:08
2019/08/19 08:41