我试图让Google表格在提交表单时自动排序。我已经能够设置脚本以使用以下内容进行排序,但它仅在手动编辑电子表格时有效(而不是当新数据来自表单时)。
function onEdit(event){
var sheet = event.source.getActiveSheet();
var editedCell = sheet.getActiveCell();
var columnToSortBy = 6;
var tableRange = "A2:F100";
if(editedCell.getColumn() == columnToSortBy){
var tableRange = "A2:F100";
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy } );
}
}
我需要设置一个触发器,以便在提交表单时执行此操作。我在Google Developers上发现了这一点,但我不确定在下面使用什么(" myFunction"):
var sheet = SpreadsheetApp.getActive();
ScriptApp.newTrigger("myFunction")
.forSpreadsheet(sheet)
.onFormSubmit()
.create();
答案 0 :(得分:3)
表单提交不是编辑,因此onEdit触发器在这里没用。相反,使用以下简单函数和可安装触发器在表单提交上。手动设置触发器很容易:在脚本编辑器中,转到参考资料>当前项目的触发器,并添加:
功能:
function sortSheet() {
var sheet = SpreadsheetApp.getActiveSheet();
var columnToSortBy = 6;
var headers = 1; // number of header rows, usually 1
var range = sheet.getRange(headers + 1, 1, sheet.getLastRow() - headers, sheet.getLastColumn());
range.sort( { column : columnToSortBy } );
}