【发布时间】:2021-01-08 22:02:36
【问题描述】:
*TL:DR 我想使用以下条件自动对整张工作表进行排序。
- 按列 1 2 和 3 对整个工作表进行排序
- 将第 1 列中带有“Z 已发货”的所有行移动到 已填充 列表的底部(第 1 列中有很多行包含空白数据,所以我想要“其他数据,Z 已发货数据” , 空白行”。*
您好,正如标题所述,我正在尝试通过多个范围对我的 Google 工作表进行排序。我在下面粘贴了我发现的当前代码让我很接近,但是我一直得到一个
“范围的坐标超出了工作表的尺寸。”
第二个“newRange.sort(newSortOrder)”行出错。
我不确定我当前的代码是否是我需要的。我没有这方面的专业知识,只是尝试找到可以在线工作的功能,但由于这似乎不是一个常见的要求,所以我一直卡在这个功能上。
function autosort() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var sortRange = "A3:E";
var range = ss.getRange(sortRange);
var sortOrder = [
{column: 1, ascending: true},
{column: 2, ascending: true},
{column: 3, ascending: true}
];
range.sort(sortOrder);
var status = ss.getDataRange().getLastRow();
for (var i=status;i>=1;i--){
if(ss.getRange(i,1).getValue()!=='Z Shipped') {break;}
}
var newSortRow = i+1;
var newSortRange = "A3:E"+newSortRow;
var newRange = ss.getRange(newSortRange);
var newSortOrder = [
{column: 2, ascending: true},
{column: 3, ascending: true}
];
newRange.sort(newSortOrder);
}
【问题讨论】:
标签: sorting google-sheets dynamic scripting range