2012-05-08 12 views
0

예를 들어 셀을 내 스프레드 시트를 = pantsHate (Y)로 설정하여이 스크립트를 실행할 때 가장 간단한 Google Apps 스크립트도 실행하는 데 문제가 있습니다.이 오류가 나타납니다. :Google Apps Scripting에서 msgBox를 호출 할 권한이 없습니다.

오류 : 당신은 특별히 내가 둘 사이에 통과 정확히 얼마나 많은 일 찾아야

function pantsHate(pref) { 

var preference = pref; 

switch (preference) { 

case "Y": 
    Browser.msgBox("You hate pants."); 
    break; 
case "N": 
    Browser.msgBox("You do not hate pants."); 
    break; 
default: 
    Browser.msgBox("You hate answering Y or N"); 
    break; 
} 

return pref; 

} 

내 최종 목표는 날짜를 조작 할 수있는 작은 함수를 작성하는 것입니다 MSGBOX를 호출 할 수있는 권한이 없습니다 날짜 (윤년, 특정 일/월 등 모든 요인). 이 프로그램은 테스트 였지만 나는 이미 뭔가 잘못하고있는 것처럼 보입니다 ... 어떤 도움이라도 대단히 감사합니다!

업데이트 : 새 프로젝트에서이 작업을 시도했지만 작동했습니다 ... arg! 업데이트 2 :이 pantHate ("Y")로 다시 실행하면이 "새"프로젝트에서 같은 오류가 발생합니다 ... 왜 Google인지, 이유는 무엇입니까?

답변

3

사용자 지정 함수는 인접한 셀에 영향을 줄 수있는 배열을 반환하지 않으면 셀에 값을 반환하지만 아무것도 반환하지 않습니다.

사용자 정의 함수는 메시지 상자를 시작할 수 없습니다 (Browser.msgbox())

사용자 정의 함수는 함수가 전부 또는 스크립트 편집기에서 함수를 호출하는 스프레드 시트 셀의 수식의 일부로 입력합니다. 당신은 진술 할 때 :

for instance when I run this script by setting a cell my spreadsheet to =pantsHate(Y) I'm getting this error:

= pantsheet 스프레드 시트 수식에서 호출하고 그것이 Browser.msgbox()

+1

감사 ScampMichael를 시작할 수 없습니다 있지만 사용자 정의 함수를 호출 할 수 있기 때문에 (Y)는 사용자 정의 함수 Browser.msgbox(). Google Apps Scripting 자습서 (https://developers.google.com/apps-script/articles/yourfirstscript)를 살펴보면 값 모두를 반환하지 않고 Browser.msgbox()를 호출하는 예제 코드가 있습니다. –

+1

@ScampMichael은 "= functionName()"셀 수식을 통해 사용자 지정 수식으로 사용되는 함수를 의미합니다. 스크립트 관리자 나 메뉴 항목을 통해 실행하는 다른 함수에서 msgBox를 호출 할 수 있습니다. – Eduardo

+0

에두아르도가 정확합니다. 내 수정 된 답변을 참조하십시오. – ScampMichael