首页 > 解决方案 > Google表格/应用程序脚本中的奇怪返回范围结果

问题描述

我有简单的数据和代码表:

在此处输入图像描述

function test() {
var SpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
var Sheet = SpreadSheet.getSheets()[0];
var frozenRows = Sheet.getFrozenRows(); 2.0
var lastRow = Sheet.getLastRow(); // 3.0
var lastColumn = Sheet.getLastColumn(); // 3.0
var headerRange = Sheet.getRange(1, 1, frozenRows, 1); // A1:A2
var dataRange = Sheet.getRange(1 + frozenRows, 1, lastRow, lastColumn); // A3:C5
var Range = Sheet.getDataRange(); // A1:C3

我不明白为什么我从以下位置获得返回值A3:C5而不是A3:C3

var dataRange = Sheet.getRange(1 + frozenRows, 1, lastRow, lastColumn);

Logger.log(dataRange.getA1Notation());

谢谢你。

标签: google-apps-scriptgoogle-sheets

解决方案


getRange ()方法具有以下语法getRange(row, column, numRows, numColumns)

因此,getRange(3, 1, 3, 3)将导致一个范围

  • 从第 1 列第 3 行开始 ( A3)
  • ist 3 列宽
  • 和 3 行长
  • 所以:A3:C:5
  • 要检索范围A3:C3,您需要查询: getRange(3, 1, 1, 3)
  • 换句话说:
var startRow = (1 + frozenRows);
var rowLength = (lastRow - startRow + 1);
var startColumn = 1;
var columnLength = (lastColumn - startColumn + 1);
var dataRange = Sheet.getRange(startRow, startColumn, rowLength, columnLength);

推荐阅读