【问题标题】:'spreadsheet' error on google spreadsheets谷歌电子表格上的“电子表格”错误
【发布时间】:2016-06-12 09:55:49
【问题描述】:

我有一个包含一些数据的矩阵表。我编写了这个脚本,将数据复制到另一张纸上并使用不同的参数对其进行排序,因此我可以自动对所有内容进行排序,而无需每次都手动对其进行排序。问题是,代码仅在数据为 174 行或更少时才有效。如果我尝试对 175 行进行排序,则会出现“电子表格错误”。 我该如何解决这个问题?我必须在那里得到一个排序算法吗?它甚至会起作用吗?

function sortsheet3() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
    //ss is the spreadsheet
 var s0 = SpreadsheetApp.getActiveSheet();
    //s0 is the sheet I was working on
 var c0 = s0.getActiveCell();
   // c0 is the cell I was working on
   // START SORTING
 var s1 = ss.getSheetByName('Lista piante');
 var x = s1.getMaxColumns();
 var y = s1.getMaxRows();
 var range = s1.getRange(2, 1, 175, x);

 var s2 = ss.getSheetByName('Potenziale');
 var r2 = s2.getRange(2, 1, 175, x)
 range.copyTo(r2);
 r2.sort({column: 4, ascending: false});

 var s3 = ss.getSheetByName('Famiglia');
 var r3 = s3.getRange(2, 1, 175, x)
 range.copyTo(r3);
 r3.sort({column: 3, ascending: true});

    // END SORTING
 SpreadsheetApp.setActiveSheet(s0); 
   // go back to original active cell
 s0.setActiveCell(c0);
}

【问题讨论】:

  • 顺便说一句,我尝试将“x”替换为实际的列数,即 21。没有任何变化。诚然,175x21 是相当多的数据……对于人类来说。对于脚本,应该是几毫秒的问题。传输时间应该比排序时间长。
  • 用超过 500 行测试你的脚本没有遇到任何问题(可能你的电子表格坏了,试试新的)
  • 添加更多细节,如活动工作表的数据结构。还可以考虑创建一个演示电子表格共享,以便任何知道该链接的人都可以查看,并将其添加到问题中,以便尝试重现问题。

标签: google-apps-script google-sheets


【解决方案1】:

原来我使用的是 getMaxRows 而不是 getLastRow,因为没有得到两者之间的区别,所以我超出了工作表的实际内容的范围。列也是如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    相关资源
    最近更新 更多