google-apps-script - Apps 脚本错误 : Cannot find method getRange(number, 数字、数字、数字)

标签 google-apps-script google-sheets

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

我正在尝试在 Google Apps 脚本中返回工作表的已知尺寸范围,如下所示:

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

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

Cannot find method getRange(number,number,number,number).

请注意,使用a1notation(如下所示)效果很好:

var myRange = ss.getRange("A2:D15");

getRange function有几种排列

  • getRange(int, int)
    • 返回整数坐标的范围
  • getRange(int, int, int)
    • 返回从前 2 个参数的坐标开始的范围,其行数与最后一个参数的行数相同
  • getRange(int, int, int, int)
    • 返回前 2 个参数的坐标范围,行数与第三个参数相同,列数与最后一个参数相同
  • 获取范围(字符串)
    • 返回由 a1notation 中的字符串指定的范围(即“A2:D15”,这与表示从第 2 行第 1 列到第 15 行第 4 列的所有内容相同)

我尝试过使用所有不同的排列(使用硬编码数字),但只有 a1notation 一种有效。有什么想法吗?

最佳答案

正如我的评论中提到的,我很想知道您如何在代码中构建 ss var。

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

我整理了一个 getRange 的简单示例。这是有效的,它会将范围内的列数和行数记录到记录器中。

如您所见,ss 变量用于电子表格,sheet 变量用于电子表格本身内的工作表。

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());

}

关于google-apps-script - Apps 脚本错误 : Cannot find method getRange(number, 数字、数字、数字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28658852/

相关文章:

google-apps-script - 确定单列中的最后一行

string - QUERY 函数,在 WHERE 子句中包含字符串

google-apps-script - 聊天机器人如何提及尚未进入房间的用户?

google-apps-script - 使用 google-apps-script 了解文件类型

google-apps-script - 谷歌脚本 openById : You do not have permission to perform that action

javascript - 如何找到两个相同的行并删除它们? (不只是一个重复的!)

url - 如何以级联结构对 Google 电子表格中的 URL 列表进行排序?

database - 谷歌应用程序脚本 : How to copy and automatically edit the data from a spreadsheet to others?

google-apps-script - 如何动态引用 Google SpreadSheets 上的多个工作表?

javascript - 如何将多段代码合并为一个? (JavaScript)