【问题标题】:Google Spreadsheet "you do not have permission to call SHOW"Google 电子表格“您无权调用 SHOW”
【发布时间】:2017-06-01 10:33:25
【问题描述】:

尝试运行

function textVersion() {
  var app = UiApp.createApplication().setTitle('Time Picker');
  var main = app.createGrid(2, 4);
  var date = app.createDateBox().setName('date');
  var hour = app.createTextBox().setName('time').setWidth('150');
  var button = app.createButton('validate')
  main.setWidget(0,0,app.createLabel('Choose Date')).setWidget(0,1,app.createLabel('Enter Hours:minutes'))
  main.setWidget(1,0,date).setWidget(1,1,hour);
  main.setWidget(1,3,button)
  var handler = app.createServerHandler('show2').addCallbackElement(main)
  button.addClickHandler(handler)
  app.add(main)
  ss=SpreadsheetApp.getActive()


  ss.show(app) // here is problem , how to fix that ?

}

但是有这个错误你没有权限调用SHOW

【问题讨论】:

标签: google-apps-script google-sheets


【解决方案1】:

这是真的。如果我是正确的,您创建了一个函数并尝试在电子表格中的“=textVersion()”之类的单元格中使用它。那是对的吗?它发生在您尝试从单元格运行自定义函数的情况下,并且该函数具有非法元素,例如“ss.show()”。

请纠正我,因为我在这里假设了一些事情。但是,如果到目前为止我的假设是正确的,那么您需要的是一个按钮,因此您可以(在电子表格的顶部菜单中)插入 > 图像。然后右键单击图像并将脚本“textVersion”分配给它。那么 UI 现在应该可以工作了,因为它是由一个人而不是您的电子表格调用的。

【讨论】:

  • 一方面,UiApp 是一个已弃用的类。另一个参考developers.google.com/apps-script/reference/ui/ui-app,当它是一个活动类时,它不能用于自定义函数,因此在公式中调用函数没有意义。
  • @Rubén 感谢您的意见。在响应之前,我在脚本编辑器中使用并测试了 OP 的代码,在各种不同的情况下,并且只有在从公式中调用它时才能得到确切的错误,正如您所指出的,这是有道理的。目前,这似乎与弃用无关,因为它在公式之外运行良好。如果我遗漏了什么,请纠正我,以便我学习。
  • IMO 你可能是完全正确的。这是在许多帖子中发现的一个非常常见的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 2018-05-20
  • 1970-01-01
  • 2016-12-27
  • 1970-01-01
相关资源
最近更新 更多