2016-09-10 5 views
0

최종 사용자가 다른 스프레드 시트의 시트에서 이메일 주소 목록을 가져올 수 있도록 시트 용 Google 스크립트를 만들려고합니다. 각 사용자는이 스프레드 시트에 자신의 시트를 가지고 있으며 자신의 주소를 따라 이름이 지정됩니다. 따라서 user1에는이 스프레드 시트에 [email protected]이라는 시트가 있고 사용자 2에게는 자신의 시트가있는 식으로 계속됩니다.Google Apps Script : 수식에 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

문자열의 변수 이름을 직접 사용할 수 없습니다. 그것은 그 말 그대로 문자 그대로 취급 될 것입니다.

+0

불행하게도 나는 버전을 사용할 때 유감스럽게도 useremail을 변수가 아닌 문자 그대로 취급합니다. 그것은 내게 준다 : = IMPORTRANGE를 ("docs.google.com/spreadsheets/d/1e9 ...."에서 useremail + "A1! A100")는 I 및 + 등으로 대체하려 을 잘하지만 그것은 정의 된 범위와 같은 useremail을 처리했고 대상 전자 메일 주소로 정의한 경우에도 채우지 않았습니다. – garthand

+0

importrange를 호출하기 전에 + 대신 &를 사용하여 시트에 useremail 문자열이있는 정의 된 범위를 작성하면 그걸 가지고 좀 더 놀았습니다. 날 데려와 줘서 고마워! – garthand