我是一个真正的新手(甚至不是(。我一生中从未编写过代码 - 只是从解释如何做到这一点的网站上复制了以下代码。我是一个谷歌文档,随着新数据的添加,我需要根据 C 列不断排序。这是我得到的代码:
function onEdit() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(3, 1, sheet.getLastRow() - 2, sheet.getLastColumn());
range.sort({column: 3, ascending: true});
}
它部分工作,但我需要将其应用于文档中的所有工作表/标签。 提前感谢!
- 您的代码包含行
var sheet = SpreadsheetApp.getActiveSheet();
,其余代码基于sheet
- 因此它仅在一个工作表上运行,插入新数据时处于活动状态的工作表,因此执行编辑的工作表 - 相反,如果您想对电子表格的所有工作表中的每个编辑执行排序,则需要 getSheets(( 方法以数组形式检索电子表格的所有工作表
- 随后,您需要遍历数组以将排序功能应用于每个工作表
样本:
function onEdit() {
var sheets = SpreadsheetApp.getActive().getSheets();
for (var i = 0; i < sheets.length; i++){
var sheet = sheets[i];
var range = sheet.getRange(3, 1, sheet.getLastRow() - 2, sheet.getLastColumn());
range.sort({column: 3, ascending: true});
}
}
重要:
onEdit
触发器仅检测人为编辑,例如键入文本。相反,如果您想在更改文档结构时触发触发器,例如插入新的空行(这与在现有空行的单元格中键入值不同(,则需要通过可安装的onChange
触发器替换onEdit
触发器,另请参阅此处