应用脚本错误:无法找到方法getRange(数字,数字,数字,数字)

pdr*_*dro 9 google-sheets google-apps-script

我看到有些人过去曾遇到过类似的问题,但他们似乎只是差异不足以使解决方案有所不同.所以这里:

我正在尝试在Google Apps脚本中返回已知大小的范围,如下所示:

var myRange = ss.getRange(2,1,14,4);
Run Code Online (Sandbox Code Playgroud)

但是,我收到这样的错误:

找不到方法getRange(数字,数字,数字,数字).

请注意,使用a1notation,如下所示,可以正常工作:

var myRange = ss.getRange("A2:D15");
Run Code Online (Sandbox Code Playgroud)

getRange函数有几种排列

  • getRange(int,int)
    • 返回整数坐标的范围
  • getRange(int,int,int)
    • 从最后一个参数的前两个参数的坐标返回一个范围
  • getRange(int,int,int,int)
    • 返回与第3个参数一样多的行的前2个参数的坐标的范围,以及与最后一个参数一样多的列
  • getRange(串)
    • 返回由a1notation中的字符串指定的范围(即"A2:D15",这与从第2行第1列到第15列第4列的所有内容相同)

我尝试过使用所有不同的排列(使用硬编码的数字),只有a1notation可以使用.有什么想法吗?

Mun*_*key 18

正如我的评论中提到的,我有兴趣看看你是如何ss在代码中构建var的.

可能是您指向电子表格,而不是该电子表格中的工作表.

我把一个简单的getRange示例放在一起.这可以工作,它会记录范围内有多少列和行到Logger.

如您所见,ssvar用于电子表格,而sheetvar用于电子表格本身的工作表.

function getSomeRange(){

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  var myRange = sheet.getRange(2,1,14,4);

  Logger.log("Number of rows in range is "+myRange.getNumRows()+ " Number of columns in range is "+ myRange.getNumColumns());

}
Run Code Online (Sandbox Code Playgroud)