トリガーは、スクリプトによって行われたスプレッドシートの変更では起動しません。変更を行うスクリプトは、それらの変更の結果にも従うことができるという考えだと思います。あなたの場合、3 つの解決策があります。
「スプレッドシートの一部を別のスプレッドシートに表示する」だけの場合は、importrange
コマンドで十分です。それを行うためのスクリプトは必要ありません。
フォーム送信によってトリガーされる関数は、対象のスプレッドシート自体を変更できます。単純なトリガーは他のスプレッドシートにアクセスできないため、これを行うには、フォーム送信時に実行されるインストール可能なトリガーが必要です。
別のスプレッドシートに添付されたスクリプトで関数を本当にトリガーしたい場合は、スプレッドシートの最終更新時刻を確認する時間ベースのトリガーを実行できます。
#3 の例: あらゆる種類の変更を検出するために、5 分ごとに実行するように設定できる関数。
function checkForUpdates() {
var updated = DriveApp.getFileById(SpreadsheetApp.getActiveSpreadsheet().getId()).getLastUpdated();
if (new Date() - updated < 300000) {
// updated in the last 5 minutes, do something
}
}