遇到错误:找不到方法(类)getRange((class),number,number,number)

时间:2013-02-01 20:09:59

标签: google-apps-script

有没有人在运行作为网络应用程序发布的UI应用程序之前遇到此错误?:

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

我用Google搜索了这句话,得出了零搜索结果。

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;
}

谷歌的任何人都在这里寻求帮助吗?

1 个答案:

答案 0 :(得分:3)

修正了它。我有一个文本框作为一系列字段的一部分,让其他焦点处理程序不应该存在。谷歌会非常有帮助,如果你有一个你的神秘错误及其含义的列表,如果行号显示在错误消息对话框弹出窗口指示问题所在,所以我们不必搜索数百行码。谷歌搜索来自谷歌应用程序脚本的错误消息是没有结果的,这是荒谬的。浪费了2个小时。