我当前的代码如下。有其他方法可以更快吗?
var tabs = ["A","B","C","D","E","F","G","H"]
function sortie() {
for (var i = 0; i < tabs.length; i++) {
sortETF(tabs[i])
};
};
function sortETF(tabs) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(tabs);
var lr = sheet.getLastRow();
var lc = sheet.getLastColumn();
var srtrg = sheet.getRange(2, 1, lr-1, lc);
srtrg.sort(6);
};
使用Sheets API时,可以降低流程成本。 参考(作者:我) 我认为 TheMaster 的评论是正确的。当你的脚本使用Sheets API修改后,下面的修改怎么样?
在使用此脚本之前,请在高级 Google 服务中启用 Sheets API。
function myFunction() {
const tabs = ["A", "B", "C", "D", "E", "F", "G", "H"]; // This is from your script.
const ss = SpreadsheetApp.getActiveSpreadsheet();
const requests = tabs.map(tab => {
const sheet = ss.getSheetByName(tab);
return {
sortRange: {
range: {
sheetId: sheet.getSheetId(),
startRowIndex: 1,
endRowIndex: sheet.getLastRow(),
startColumnIndex: 0,
endColumnIndex: sheet.getLastColumn()
},
sortSpecs: [{ sortOrder: "ASCENDING", dimensionIndex: 5 }]
}
}
});
Sheets.Spreadsheets.batchUpdate({ requests }, ss.getId());
}
tabs
工作表的数据范围按“F”列排序。第一行被跳过。