2012-05-08 10 views
0

たとえば、セルをスプレッドシートに= pantsHate(Y)に設定してこのスクリプトを実行すると、最も簡単なGoogle Appsスクリプトでも実行できません。 :Google Apps ScriptingでmsgBoxを呼び出す権限がありません

エラー:あなたは私の最終目標は、特に私は2つの間を通過している正確にどのように多くの日を見つける必要がある、日付を操作するための小さな関数を書くことです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; 

} 

を呼び出すための権限がありません日付(うるう年、特定の日/月などはすべて要因です)。このプログラムは単なるテストではありましたが、私はすでに間違ったことをしているようです...どんな助けでも大歓迎です!

アップデート:これを新しいプロジェクトで試してみました。 更新2:この新しいプロジェクトで同じエラーが発生しました。理由は何ですか、なぜですか?

答えて

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(Y)はカスタム関数であり、それはBrowser.msgboxを(開始することはできません)

+1

おかげScampMichaelが、カスタム関数を呼び出すことができますBrowser.msgbox()。 Google Apps Scriptingチュートリアルのhttps://developers.google.com/apps-script/articles/yourfirstscriptを確認すると、両方とも値を返さず、Browser.msgbox()を呼び出すサンプルコードがあります。 –

+1

@ScampMichaelは、( "= functionName()"セル式を使用してカスタム式として使用される関数を意味します。スクリプトマネージャやメニュー項目から実行する他の関数からmsgBoxを呼び出すことができます。 – Eduardo

+0

エドゥアルドが正しいです。私の改訂版の回答を参照してください。 – ScampMichael

関連する問題