エンドユーザーが別のスプレッドシートのシートから電子メールアドレスのリストをインポートできるように、シート用のGoogleスクリプトを作成しようとしています。各ユーザーはこのスプレッドシートに独自のシートを持ち、それぞれの住所の名前が付けられます。したがって、user1にはこのスプレッドシートに[email protected]というシートがあり、user2には自分のシートがあります。Google Appsスクリプト:数式でVarを使用しますか?
私は自分のメールアドレスを私に与えるためにSession.getActiveUser()。getEmail()を使うことができますが、それをIMPORTRANGE内の変数として使用する方法が見つかりません。
これは可能ですか?そうでない場合は、電子メールvarを使用してシートを指し、アドレスを配列に格納してからターゲットシートに書き込むなどの別の方法で同じ結果を得ることは可能ですか?
ここに参考になるスクリプトのスニペットがあります。私がuseremail!A1:A100 "と言うビットは、useremail varを使ってgetEmail()の結果を埋め込むことを望んでいた場所です。
function importlist() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetname = 'Blacklist';
var useremail = Session.getActiveUser().getEmail();
if (ss.getSheetByName(sheetname) == null) {
ss.insertSheet(sheetname);
ss.getSheetByName(sheetname).getRange("A1").setFormula('=IMPORTRANGE("sheetlink","useremail!A1:A100")');
} else {
ss.getSheetByName(sheetname).getRange("A1").setFormula('=IMPORTRANGE("sheetlink","useremail!A1:A100")');
ss.getSheetByName(sheetname).activate()
};
残念ながら、あなたのバージョンを使用すると、私は残念なことに、useremailを変数ではなく文字通りそのまま扱います。 それは私を与える: = IMPORTRANGE( "docs.google.com/spreadsheets/d/1e9 ...."、USEREMAIL + "!A1:A100") 私は&としてで+を交換してみましたうーん、それから私は定義された範囲のようにuseremailを扱い、私が目標の電子メールアドレスでそれを定義したとしてもそれを記入しなかった。 – garthand
私は+の代わりに&を使って、importrangeを呼び出す前にuseremail文字列で定義された範囲をシートに書き込むと、それはもっとうまくいっています。私をそこに連れてくれてありがとう! – garthand