【问题标题】:No permission to call msgBox in Google Apps Scripting无权在 Google Apps Scripting 中调用 msgBox
【发布时间】:2012-05-17 09:05:43
【问题描述】:

即使是最简单的 Google Apps 脚本也无法运行,例如,当我通过将电子表格的单元格设置为 =pantsHate(Y) 来运行此脚本时,我收到了以下错误:

错误:您没有权限调用 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-apps-script google-sheets google-sheets-formula google-sheets-custom-function


    【解决方案1】:

    自定义函数只会返回一个值到它们所在的单元格,除非返回一个可能影响连续单元格的数组。

    自定义函数无法启动消息框(Browser.msgbox())

    自定义函数是在电子表格单元格中作为公式的全部或部分输入的函数,它从脚本编辑器调用函数。当您声明时:

    例如,当我通过将电子表格的单元格设置为 =pantsHate(Y) 来运行此脚本时,我收到此错误:

    =pantsheet(Y) 是一个自定义函数,因为您是从电子表格公式调用它并且它无法启动 Browser.msgbox()

    【讨论】:

    • 感谢 ScampMichael,但自定义函数可以调用 Browser.msgbox()。如果您查看 Google Apps 脚本教程 developers.google.com/apps-script/articles/yourfirstscript,则有示例代码既不返回值又调用 Browser.msgbox()。
    • 请注意,@ScampMichael 表示用作自定义公式的函数(通过“=functionName()”单元格公式)。您可以从通过脚本管理器或菜单项运行的其他函数调用 msgBox。
    • 啊,我明白了。我很抱歉 ScampMichael 并感谢 Eduardo Cereto。我仍在努力解决 GAS 问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多