这是我用来将Google表格文档的所有表格名称拉入前页列表中的脚本。这是工作;但是,有没有办法以相反的方式进行分类呢?我有按日期命名的图纸,其中最早的日期是最远的图纸,而最新的图纸是最靠近正面的图纸。因此,它将首先对最新日期进行排序,但我希望它首先对最旧的日期进行排序。另外,有没有办法使此功能动态化,以便在添加新工作表时或工作表名称更改时进行更新?
function sheetnames() {
var out = new Array()
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (var i=0 ; i<sheets.length ; i++) {
Logger.log(String(sheets[i].getSheetId()));
// var sheetId = sheets.getSheetId()
out.push( [ sheets[i].getName() ] )
}
return out
}
尝试:
function SHEETLIST() {
try {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets()
var out = new Array( sheets.length+1 ) ;
out[0] = [ "♥♥" , "#GID" ];
for (var i = 1 ; i < sheets.length+1 ; i++ ) out[i] =
[sheets[i-1].getName() , sheets[i-1].getSheetId() ];
return out
}
catch( err ) {
return "#ERROR!" }}
和公式:
=ARRAYFORMULA(QUERY(IFERROR(SPLIT(INDEX(SHEETLIST(),,1)&"♦"&ROW(A:A), "♦")),
"select Col1 where Col1 <> '♥♥' order by Col2 desc", 0))