2012-05-08 56 views
0

即使運行最簡單的Google Apps腳本,例如當我通過將單元格電子表格設置爲= pantsHate(Y)運行此腳本時,我遇到了問題我收到此錯誤:沒有權限在Google Apps腳本中調用msgBox

錯誤:您沒有權限撥打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; 

} 

我的最終目標是編寫一個小函數處理日期,具體我需要找到究竟有多少天有兩個之間傳遞日期(閏年,特定日/月等都是因素)。這個程序只是一個測試,但我似乎已經做錯了什麼...任何幫助,非常感謝!

更新:我在一個新的項目中嘗試過,它工作... arg! 更新2:再次用= pantsHate(「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(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

相關問題