前提・実現したいこと
google Spreadsheetにデータ(1行4列)がシート1に書き込まれたら、書き込まれたデータとシート2にすでにあるデータを比較して、シート2に上書きor最終行に挿入したいが、エラーが出てうまく動かない。
参考にしているページ:
https://qiita.com/rf_p/items/f423ed2b23b789b2ebe9
発生している問題・エラーメッセージ
Exception: パラメータ(number[])が SpreadsheetApp.Range.setValues のメソッドのシグネチャと一致しません。(行 24、ファイル「コード」)
該当のソースコード
ほとんど上記参考ページのコードのコピペです、、、
GAS
1function createList(){ 2 var sheetRegist = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet1'); 3 var lastRowRegist = sheetRegist.getLastRow(); 4 var newData = sheetRegist.getRange(lastRowRegist, 1, 1, 4).getValues(); 5 6 var sheetTarget =SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet2'); 7 8 insertOrUpdate(sheetTarget, newData); 9} 10 11function insertOrUpdate(sheetTarget, newData) { 12 var sheetRegist = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet1'); 13 var lastRowRegist = sheetRegist.getLastRow(); 14 var newData = sheetRegist.getRange(lastRowRegist, 1, 1, 4).getValues(); 15 var A = newData[0][0]; 16 var B = newData[0][1]; 17 var C = newData[0][2]; 18 var D = newData[0][3]; 19 20 Logger.log(newID); 21 22 var row = findRow(sheetTarget, newData[0]); 23 if (row) { 24 sheetTarget.getRange(row, 1, 1, 4).setValues([A, B, C, D]); 25 } else { 26 sheetTarget.appendRow([newDate, newID, newType, newTime]); 27 } 28} 29 30function findRow(sheetTarget, date) { 31 var searchDate = Utilities.formatDate(new Date(date), 'Asia/Tokyo','yyyy/MM/dd'); 32 var values = sheetTarget.getDataRange().getValues(); 33 34 for (var i = values.length - 1; i > 0; i--) { 35 var dataDate = Utilities.formatDate(new Date(values[i][0]), 'Asia/Tokyo','yyyy/MM/dd'); 36 if (dataDate == searchDate) { 37 return i + 1; 38 } 39 } 40 return false; 41} 42
試したこと
setValuesの中の引数をnewDataにしていてもエラーが出たので、
https://qiita.com/takuya_yamamot/items/54757d4511723a00ec6d
を参考にデータを個別に分けたけれど、エラーが解消されません。
https://teratail.com/questions/245539
上記で「V8 Runtimeのバグ」とありますが、どこをどう修正すると動くようになるでしょうか。。。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/13 23:35
2020/04/14 13:53
2020/04/15 00:16
2020/04/15 14:12