我有一个在Google云端硬盘中创建的脚本,因为我希望它是电子表格的独立脚本-主要是因为其他用户一直在使用这些脚本,并且工作表在我找到之前无法正常运行所有的问题!
其中一个脚本是这样的:
var SORT_COLUMN_INDEX = 2;
var ASCENDING = true;
var NUMBER_OF_HEADER_ROWS = 2;
var activeSheet;
function autoSort(sheet) {
var range = sheet.getDataRange();
if (NUMBER_OF_HEADER_ROWS > 0) {
range = range.offset(NUMBER_OF_HEADER_ROWS, 0);
}
range.sort( {
column: SORT_COLUMN_INDEX,
ascending: ASCENDING
} );
}
function onClickButton() {
var sheet = SpreadsheetApp.getActiveSheet();
autoSort(sheet);
}
我在网上找到了该文件,显然可以将应用程序脚本链接到电子表格,但这对我不起作用... var ss = SpreadsheetApp.OpenFileById(xxx__xxx)
(xxx__xxx)
是电子表格ID,采用以下格式:https://docs.google.com/spreadsheets/d/ xxx__xxx / edit#gid = 1611726502 当我运行脚本时,这只会返回以下内容:
TypeError: Cannot find function OpenFileById in object.
请有人协助我将代码var ss = SpreadsheetApp.OpenFileById(xxx__xxx)
放在脚本中,还是最好的脚本中,以便根据工作表ID查找电子表格?
p.s。如果有任何区别,我将需要运行函数onClickButton
...
答案 0 :(得分:0)
从独立脚本中排序电子表格
var ssid="Spreadsheet Id";
function sortingSS() {
var ss=SpreadsheetApp.openById(ssid);
var sh=ss.getSheetByName('Sheet3');
var rg=sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn());
rg.sort({column:1,ascending:true});
}
排序前的表格
排序后页
将其添加到菜单
function onOpen() {
SpreadsheetApp.getUi().createMenu("Project Menu")
.addItem("Sorting Spreadsheet", "sortingSS")
.addToUi();
}