【发布时间】: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