次のコード行を使用して、セルの範囲をある場所から別の場所にコピーしようとしています:
cell.offset(1, 0, 1, sheet.getLastColumn()).copyTo(cell.offset(nextRow, 0));
コピーされる範囲は常に同じです。変更nextRow
されているのは、コピー先の行だけです。
元の範囲には、値と数式を含むセルがあります。
すべて問題ないように見えますが、理由は不明ですが、コピー プロシージャが不安定な動作をしています。
- 一度、すべてが期待どおりに機能します。
- 別の場合は、セルの 1 つをコピーしません。
- 別の場合は、数式はコピーせず、値のみをコピーします。
- 別の機会には、上記の矛盾が混ざり合っています。
UI からのコピーは問題ありません。
関数を実行するときにスプレッドシートを開いたという事実は、それと関係がありますか?
大きな問題:範囲が適切にコピーされるようにする方法はありますか?
アップデート:
より明確にするための追加のコード:
var ss = SpreadsheetApp.openById(ScriptProperties.getProperty('SpreadSheetId'));
var sheet = ss.getSheetByName("Matches");
var nextRow = sheet.getLastRow();
var cell = sheet.getRange('a1');
cell.offset(1, 0, 1, sheet.getLastColumn()).copyTo(cell.offset(nextRow, 0));