2017-05-01 6 views
0

Googleシートのユーザーにシートの行を保護する機能を提供したいと思います。セルの値を "√"に設定すると(ドロップダウンリストから)、行を保護したいと思います。同じユーザーまたは他のユーザーが行の値を変更したい場合は、「 - 」をドロップダウンリストから削除することができます。Googleシートを使用してRemove()Protect()を行うことができません

私はonEdit()イベントを使用しています。

私は希望の範囲を保護することができますが、保護を解除するには問題がありますが、remove()は機能しません。

次のコマンドでremoveを実行することができますが、protect()は新しい保護範囲を作成してremove()するだけで削除されます。私は、他の誰かが作成した範囲を削除しようとしています。

は、VaRの結果= range.protect()。(削除)

私はこれに約8時間(主に答えを探して)です。

ありがとうございました。

答えて

0

保護された範囲を削除するには、保護をリストすることによってそれを取得する必要があります。

// Remove all range protections in the spreadsheet that the user has permission to edit. var ss = SpreadsheetApp.getActive(); var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE); for (var i = 0; i < protections.length; i++) { var protection = protections[i]; if (protection.canEdit()) { protection.remove(); } }

https://developers.google.com/apps-script/reference/spreadsheet/protection @サンプル/ドキュメントを参照してください。 range.protect()を呼び出すと、常に新しい保護が作成されます。

+0

ありがとうございます@Sam Berlin ...私は旅行でこのスニペットを見ました...問題はどうやって保護を解除したい行を見つけるのですか?つまり、remove()を適用するために、ユーザーが使用しているシートの行と同じ範囲の行を見つけるにはどうすればよいですか? –

関連する問題