2016-09-10 12 views
0

エンドユーザーが別のスプレッドシートのシートから電子メールアドレスのリストをインポートできるように、シート用の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() 
}; 

答えて

0

文字列内の変数名を直接使用することはできません。文字通りその言葉として扱われます。

IMPORTRANGE("sheetlink", useremail + "!A1:A100") 
+0

残念ながら、あなたのバージョンを使用すると、私は残念なことに、useremailを変数ではなく文字通りそのまま扱います。 それは私を与える: = IMPORTRANGE( "docs.google.com/spreadsheets/d/1e9 ...."、USEREMAIL + "!A1:A100") 私は&としてで+を交換してみましたうーん、それから私は定義された範囲のようにuseremailを扱い、私が目標の電子メールアドレスでそれを定義したとしてもそれを記入しなかった。 – garthand

+0

私は+の代わりに&を使って、importrangeを呼び出す前にuseremail文字列で定義された範囲をシートに書き込むと、それはもっとうまくいっています。私をそこに連れてくれてありがとう! – garthand

関連する問題