【问题标题】:"The coordinates of the range are outside the dimensions of the sheet" error when sorting排序时出现“范围的坐标超出工作表的尺寸”错误
【发布时间】:2022-01-17 23:32:10
【问题描述】:

我正在尝试创建一个脚本来对当前活动工作表/选项卡上的表格进行排序,但我收到了一个我无法识别的错误。我不断收到The coordinates of the range are outside the dimensions of the sheet.。我的表中有从 columnA 到 columnQ 的数据。 A 列中的数据是标识号,B 列到 Q 列包含公式。我的脚本有什么问题?

var sortFirst = 7; //index of column to be sorted by; 1 = column A, 2 = column B, etc.
  var sortFirstAsc = true; //Set to false to sort descending

  var sortSecond = 8;
  var sortSecondAsc = true;

  var sortThird = 9;
  var sortThirdAsc = true;

  var activeSheet = SpreadsheetApp.getActiveSheet();
  var sheetName = activeSheet.getSheetName(); //name of sheet to be sorted
  var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
  var range = sheet.getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn());
  range.sort([{column: sortFirst, ascending: sortFirstAsc}, {column: sortSecond, ascending: sortSecondAsc}, {column: sortThird, ascending: sortThirdAsc}]);

【问题讨论】:

  • 如果你登录sheet.getLastRow()sheet.getLastColumn(),你会得到什么?

标签: google-apps-script google-sheets


【解决方案1】:

出错的可能性很大

var range = sheet.getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn());

解决方法很可能是改变它

var range = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn());

以上是因为范围从第 2 行开始,并且该工作表很可能在其最后一行有内容。

相关

【讨论】:

  • 嗨鲁本,谢谢你,B到Q列确实有公式,看起来添加-1确实有效,但现在我的问题是虽然它正在对表格进行排序,但它包括具有空白不可见值的行(仅包含公式),因此结果是具有可见值的行最终位于工作表的底部,而空白的行位于顶部。如何使排序使用具有可见值的最后一行行?或者如何使上面的代码行仅从第 2 行到 A 列的最后一行进行排序?
  • @Jay 请发布一个新问题。
  • 这个答案是 hack,不是解决方案
  • @MC9000 你是什么意思?考虑到问题的内容,您期望这个问题的解决方案是什么?
  • 问题的内容暴露了当行数等于或大于最大数时排序和其他 Google 表格功能不起作用的问题。此解决方案将截断最后一个值并且不能解决问题!
【解决方案2】:

以下是针对 Google 表格中此错误的解决方法: 只要 lastrow 大于或等于 maxrows,它就会简单地在工作表的末尾添加一行。这不是从脚本编写方面自动完成的(尽管 Google 的系统调用了数百个其他幕后函数来模拟在电子表格上的工作)。

let maxRows = mySheet.getMaxRows();
if(mySheet.getLastRow() >= maxRows) {mySheet.insertRowsAfter(maxRows,1);}

我希望这对所有在 Google 表格上进行排序、重复数据删除等时遇到此问题的人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多