AppSheetで作成されたモバイルアプリによって更新されたGoogleシートがあります。 私は履歴を保持するために必要なデータの列を持っているので、別のシートのfblank列に列をコピーするためのスクリプトを書きました。Google Scripts onEditは、モバイルデバイスからの同期中にシート上で編集中のデータを認識しません。
function readdailyChecks() {
var sheetFrom = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Todays Checks");
var sheetTo = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("History");
// Copy from 5th column, all rows for one column
var valuesToCopy = sheetFrom.getRange("D2:D100").getValues()
//Paste to another sheet from first cell onwards
sheetTo.getRange(1,sheetTo.getLastColumn()+1,valuesToCopy.length,1).setValues(valuesToCopy);
}
シートが同期は、シートのデータを編集するだろうと考え編集されたとき、私は、このタスクを実行するために別のスクリプトを書きました。
function onEdit(e) {
if(e);
readdailyChecks(e)
}
アプリは、フォームが完了した後に、同期シートを更新し、それがものだ行うにonEdit
コードをトリガーするということでアイデア。 問題は、過去のデータが作成されないように、同期がシートデータを編集せずに変更することです。
onSync
コードがありますか、またはデータが変更されたときにスクリプトが起動される方法はありますか?
おそらく、[onChange](https://developers.google.com/apps-script/reference/script/spreadsheet-trigger-builder#onChange())トリガーは、あなたが探しているものです –
@RobinGertenbach:から[documentation](https://developers.google.com/apps-script/guides/triggers/installable)「インストール可能な変更トリガー**は、ユーザーがスプレッドシートの構造を変更すると**実行されます。新しいシートを追加したり、列を削除することができます。 –