我只是尝试在添加新名称或编辑现有名称后按字母顺序对名称进行排序(我从第二行开始了排序过程,因为第一行是我的标题)。如图所示,我使用了onEdit(e)触发器。这应该是一件简单的事情,但是却行不通。当我在工作表中添加名称或编辑现有名称时,没有任何反应。
ss = SpreadsheetApp.openById("1nQZT16wiN9AX6FqZhioKyeLWoL7_BKfi09zRg");
sheet = ss.getSheetByName("Sheet1");
function onEdit(e) {
range = sheet.getRange(2, 1, sheet.getLastRow()-1);
range.sort(1);
}
我希望有人能解决这个问题。
答案 0 :(得分:2)
您正在获取全球范围内的电子表格:
ss = SpreadsheetApp.openById("1nQZT16wiN9AX6FqZhioKyeLWoL7_BKfi09zRg");
这需要任何 following scopes:
但是简单的触发器会未经授权运行1。因此,您不能使用SpreadsheetApp.openById()
。不过,您可以从onEdit内的事件对象2获取电子表格:
const onEdit = e => e.source
.getSheetByName("Sheet1")
.getRange("A2:A")
.sort(1)
如果要打开当前绑定的电子表格以外的其他任何电子表格,则需要使用installable triggers