繁体   English   中英

通过 onOpen 命令运行时 SpreadsheetApp.openById 显示错误

[英]SpreadsheetApp.openById displays error when run via the onOpen command

我怀疑这是一个简单的修复,但我的 Google App 脚本有问题,我已经阅读了许多帖子,这些帖子表明这些函数在自定义函数中已被弃用,但我不知道如何修复。

我有一个在使用 onOpen() function 打开 Google Sheet 时自动运行的脚本。 我试图在这个 function 中移动 OpenByID() 方法,但得到了同样的错误。 有人可以告诉我如何具体解决这个问题。

function onOpen(e) {
//function test(e) {
  // Add a custom menu to the spreadsheet.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var masterSheet=ss.getSheetByName(masterTab);

  for(var xLOSName = 3; xLOSName <= 4; xLOSName++) 
  {
    Logger.log('Attempting to open file');
    var fileId = masterSheet.getRange(xLOSName,2).getValue();
    Logger.log('Opening File ID: ' + fileId);
    var xLOSSpreadsheet  = SpreadsheetApp.openById(masterSheet.getRange(xLOSName,2).getValue());

    //var xLOSSpreadsheet  = SpreadsheetApp.openById(masterSheet.getRange(xLOSName,2).getValue()).getSheets()[0];
    Logger.log(xLOSSpreadsheet.getName());
  }

注意:它永远不会记录文件名。 愚蠢的是,这在从调试器运行时有效。 问候

您不能在自定义函数中使用 SpreadsheetApp.openById()。 它不仅被弃用,而且是不允许的。

自定义函数的限制

像 onOpen() 这样的简单触发器也不能执行需要权限的操作。

简单触发器限制

如果您需要需要权限的操作,则必须使用可安装的触发器。

您是否尝试过从不同于 onOpen() 的自定义 function 运行相同的代码? 我遇到过类似的问题,最终限制在 onOpen() 和 onEdit() 函数上,我也在寻找 sintax 错误等......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM