2017-12-06 5 views
0

그래서 특정 셀에 자동으로 날짜 스탬프를 넣는 스크립트를 작성했습니다. 그것은 내 테스트 환경에서 정상적으로 (그리고 디버거를 통해 열릴 때) 잘 작동하고 디버거를 통해 실행할 때 팀 드라이브에서 잘 작동합니다. 그러나 팀 드라이브에서 정상적으로 실행될 때는 셀을 업데이트하지 않습니다. 어떤 아이디어?Google 스프레드 시트 OnOpen()이 팀 드라이브의 시트를 업데이트하지 않습니다.

function onOpen() { 
    var AcksSheet   = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Acks"); 
    var RecruiterList  = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Lists"); 
    var RecruitersRange  = RecruiterList.getDataRange(); 
    var nLenRecruitersTable = RecruitersRange.getNumRows(); 
    var values    = RecruitersRange.getValues(); 
    var email    = Session.getActiveUser().getEmail(); 
    var nRecruiterRow  = 0 
    for (var i = 0; i < nLenRecruitersTable; i++) 
    { 
    // check if active user email matches email in the recruiter table 
    if (email == values[i][1]) 
    { 
     // plus one as the range has one row header 
     nRecruiterRow = i+1; 
     AcksSheet.getRange(nRecruiterRow,2).setValue(new Date()); 
     AcksSheet.getRange(nRecruiterRow,2).setNumberFormat("MM/dd/yyyy hh:mm:ss"); 
     break; 
    } 
    } 
} 
+0

내가 사람을 위해 공유 할 수있는 링크와 함께 내 개인 Gmail 계정에 복사본을 만들어 : https://docs.google.com/spreadsheets/d/1a4Q0ZLykfsRAgrndOsfFlCGb9eT4cI4MlNWpylY2UkA/edit?usp=sharing – JohnA

+0

이 도움이되는지 확실하지, 하지만 onOpen() 트리거를 사용하여 시트에 메뉴 항목을 추가하고이 함수를 호출 할 수있었습니다. – JohnA

답변

0

getMail은 간단한 onOpen() 트리거에서 실행할 때 빈 문자열을 반환합니다. on open installable trigger를 사용하십시오. https://developers.google.com/apps-script/reference/base/user#getemail

가령 getMail() 가능한 경우

은, 사용자의 이메일 주소를 가져옵니다에서

. 보안 정책이 사용자의 전자 메일 주소에 대한 액세스를 허용하지 않으면이 메서드는 빈 문자열을 반환합니다. 이메일 주소가 인 상황은 다양합니다. 예를 들어 간단한 onOpen (e) 또는 onEdit (e)와 같이 해당 사용자의 인증없이 스크립트를 실행할 수있는 모든 환경에서 사용자의 이메일 주소는 사용할 수 없습니다 ( ) 방아쇠, Google 스프레드 시트의 맞춤 기능 또는 "나를 실행"으로 배포 된 웹 앱 (즉, 사용자 대신 개발자가 승인 함). 그러나 개발자와 사용자가 동일한 G Suite 도메인에 속한 경우 일반적으로 이러한 제한이 적용되지 않습니다.

+0

내 모든 사용자가 동일한 G Suite 도메인에 있으므로이 문제에 대해 감사드립니다. 나는 그것이 어떻게 든 일하고있다, 정확하게 그것이 지금 작동하고 있는지에 관해 명확히하지 않는다. 스크립트를 직접 실행하지 않고 다른 함수를 호출하도록 OnOpen() 함수를 변경했습니다. 또한 OnOpen()이 실패 할 경우 이메일을 보내는 트리거를 추가했습니다. 그럼 누가 알 겠어? – JohnA

관련 문제