Googleシートに異なるシートを持つスプレッドシートがあります.3人のユーザーがそれぞれ1枚のシートを編集できます(保護が設定され、 )。彼らはすべて、編集した内容を要約シートに書き込むGoogleスクリプト機能を実行できます。誰かが要約シートを編集するのを嫌っているので、唯一のエディタとして自分自身を設定しました。 私の問題は、3人のユーザーに、Googleスクリプト機能を介してのみ要約シートに書き込むことを許可することです。私は次の関数を使用しようとしました:Googleスクリプト:ユーザーに権限がないときにシートスルー機能の保護を解除する
var unprotected = summarySheet.getRange( 'G3:G10'); protection.setUnprotectedRanges([unprotected]);
しかし、ユーザーはサマリーシートの編集を許可されていないため、アクティブユーザーと一緒に機能が実行されるため、サマリーシートの範囲の保護を解除する権利はありません。この問題を回避する方法を知っていますか?
ありがとうございます!
シートベースのソリューションでは、要約データがリアルタイムで更新されないようにする必要があるため、ユーザーが望む場合にのみ、私の問題に答えることはできません。私はトリガーが所有者に限られていたことを知らなかった、それは仕事をするだろう!ありがとう –
あらかじめ定義されたトリガーを持ち、「ユーザーが必要なときにのみ」実行するのは難しいです。エンドユーザが編集可能なセルにトリガを設定することができます(たとえば、編集可能なシートの事前定義された場所にTRUEで「要約できますか」という質問に答えます)。そして、実行後にそのセルの値をFALSEに戻すようにスクリプトを設定します。しかし、これよりはるかにエレガントなソリューション! –