0

在运行作为 Web 应用程序发布的 UI 应用程序之前,有没有人遇到过这个错误?:

Error encountered: Cannot find method (class)getRange((class),number,number,number).

我在谷歌上搜索了这个短语并得出了零搜索结果。

Web 应用程序从 加载正常doGet(),并且在小型服务器处理程序运行后出现错误。事情是处理程序运行良好(处理程序函数末尾的我的“处理...”标签关闭可见性)并且我正在调用的电子表格更新没有问题。我检查了我的代码,我所有的 getRanges 都正确格式化为sheet.getRange(row,col,num,num).

GAS 昨天表现得很奇怪,昨天他们更新了 Ctrl-F 查找功能时似乎出现了一个奇怪的错误,但通过简单刷新该页面即可解决此问题。我在今天的新错误后刷新了,但在运行处理程序后它仍然出现。还有其他人遇到这个或有解决方案吗?


好吧,我已将代码复制粘贴到另一个脚本中,并复制了我正在调用的电子表格,但我仍然收到错误消息。这是根据谷歌错误触发器的“违规”代码:

function addNewCo(e) {
  var app=UiApp.getActiveApplication();
  var newCoName=e.parameter.newCoName;
  coSheet.appendRow([newCoName]);
  coSheet.sort(1,true);
  var coSheetValues=coSheet.getRange(2,1,coSheet.getLastRow()-1,coSheet.getLastColumn()).getValues();
  app.getElementById('coNameLB').clear().addItem(newCoName).addItem('').addItem('Select Company ---');
  for (i=0;i<coSheetValues.length;i++){ app.getElementById('coNameLB').addItem(coSheetValues[i][coSheetColNamesArray.indexOf('Company Name')]); }
  app.getElementById('popupPanel').setVisible(false);
  app.getElementById('GoBtn').setStyleAttribute('background','#2a9c3b').setEnabled(true);
  app.getElementById('processingLbl').setVisible(false);
  return app;
}

正如我上面所说,处理程序完成了它的功能,那么为什么会出现这个错误呢?


这真是太疯狂了。在追加和排序之后,我删除了对工作表的任何引用,换句话说,我完全取出了处理函数中的 getRange,但错误仍然不断弹出!

function addNewCo(e) {
  var app=UiApp.getActiveApplication();
  var newCoName=e.parameter.newCoName;
  coSheet.appendRow([newCoName]);
  coSheet.sort(1,true);
  app.getElementById('coNameLB').clear().addItem(newCoName).addItem('').addItem('Select Company ---');
  app.getElementById('popupPanel').setVisible(false);
  app.getElementById('GoBtn').setStyleAttribute('background','#2a9c3b').setEnabled(true);
  app.getElementById('processingLbl').setVisible(false);
  return app;
}

我什至没有调用getRange,那么错误怎么会弹出呢?


逆天。现在我从处理程序中删除了对电子表格的任何提及,但我仍然得到错误。谷歌什么鬼?!?该doGet()函数加载正常,错误仅使用处理程序出现 - 即使没有提及电子表格 - 世界上有什么?!?:

function addNewCo(e) {
  var app=UiApp.getActiveApplication();
  var newCoName=e.parameter.newCoName;
  app.getElementById('coNameLB').clear().addItem(newCoName).addItem('').addItem('Select Company ---');
  app.getElementById('popupPanel').setVisible(false);
  app.getElementById('GoBtn').setStyleAttribute('background','#2a9c3b').setEnabled(true);
  app.getElementById('processingLbl').setVisible(false);
  return app;
}

我已将处理程序函数剥离为仅关闭弹出窗口,但仍然出现错误。

function addNewCo(e) {
  var app=UiApp.getActiveApplication();
  app.getElementById('popupPanel').setVisible(false);
  return app;
}

谷歌的任何人都愿意提供帮助吗?

4

1 回答 1

3

修复。我有一个文本框作为字段数组的一部分,它可以让其他焦点处理程序出现在不应该出现的地方。谷歌,如果您在某处列出了您的隐秘错误及其含义,并且行号出现在错误消息对话框弹出窗口中,指示问题出在哪里,那么我们不必搜索数百行代码。谷歌搜索来自谷歌应用程序脚本的错误消息没有返回结果是荒谬的。浪费了2个小时。

于 2013-02-01T22:25:38.397 回答