Google Appsスクリプトを使用してスプレッドシートからユーザーを削除する方法を解明しようとしています。セルからのメールを使用してシートから編集アクセスを削除する
私は基本的に電子メール、名前、UIDなどの情報を持つ中央のスプレッドシートを持っています。私はこのスプレッドシートから電子メールを引き出し、別のスプレッドシートからその電子メールを削除するためにremoveEditor関数を使用しようとしています。以下のコードを見ることができます。
var officerIDrow = officerID + 1;
var Tracker = SpreadsheetApp.getActive().getSheetByName('P_Tracker'); //the button is on the same sheet as this, this is why it is get active.
var PTBooking = SpreadsheetApp.openById("1JPS69ko99dQTEwjplF_l2l2G_T8RyHjxCyMxXd_AV_s"); //Referring to the other sheet where the email will be removed from editors.
var EmailAddressRange = "F" + officerIDrow; //This is the column where the emails are stored. The officer ID row refers to the user inputted value in a dialog. Don't worry about this, I have already checked to see if this is the issue,
var EmailAddress1 = Tracker.getRange(EmailAddressRange);
var EmailAddress2 = EmailAddress1.getValue();
var EmailAddress3 = Utilities.formatString(EmailAddress2); //In my desperation, I was trying to see if setting it as string would help.
PTBooking.removeEditor(EmailAddress3);
これは完全なコードではありません。見たい場合はhereをクリックしてください。しかし、重要なことはすべて上です、他のすべてはうまく動作します。
上記のコードは、電子メールを削除しようとしている最後の行にヒットするまで正常に実行されます。表示されるエラーメッセージに「無効なメール:」と表示されます。私は "電子メール:"ビットの後に引っ張っているものを表示する必要があります。しかし、それはしません!なぜ私は人を取り除くために電子メールを見つけて使用していないのか分かりません。
誰でも問題を見つけることができますか?
ありがとう、
Shaun。
[email protected]として手動で知っているエディタのメールアドレスとしてVARを宣言し、それが動作するかどうかを確認しようとしていますか? getEditorsを使用して、返される内容と返される内容を確認しましたか。 varトラッカーでは、一重引用符を使用します。他の人はダブル ""を使います。多分1つに固執し、参照してください。 emailAddressRangeについて心配しないでくださいが、それが私だったら私もそれを見ています。 – Munkey
これを行うだけで、PTBooking.removeEditor( "[email protected]");それは動作しません。他のスプレッドシートを適切に参照する方法についてはわかりません。 –
私はこれを試しました。 'function myTest(){ var ss = SpreadsheetApp.openById(" ID HERE "); var editors = ss.getEditors(); ss.removeEditor( "[email protected]"); Logger.log(エディタ)。 } ' このログに記録された編集者のメールアドレスは、選択したエディタを外部スプレッドシートから削除して削除しました。 'emailAddress2'がロガーにどのようなログを記録するのか興味があります。 – Munkey