每次提交表单时使用触发器对 sheet 进行排序
Use a trigger to sort a sheet every time a form is submitted
我正在尝试让 Google Sheet 在提交表单时自动排序。我已经能够将脚本设置为按以下顺序排序,但它仅在手动编辑电子表格时有效(而不是在新数据来自表单时)。
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 开发人员上找到了这个,但我不确定在下面使用什么作为 ("myFunction"):
var sheet = SpreadsheetApp.getActive();
ScriptApp.newTrigger("myFunction")
.forSpreadsheet(sheet)
.onFormSubmit()
.create();
表单提交不是编辑,所以onEdit触发器在这里没有用。相反,使用以下带有可安装触发器的简单函数 On Form Submission。手动设置触发器很容易:在脚本编辑器中,转到资源 > 当前项目的触发器,然后添加:
函数:
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 } );
}
我正在尝试让 Google Sheet 在提交表单时自动排序。我已经能够将脚本设置为按以下顺序排序,但它仅在手动编辑电子表格时有效(而不是在新数据来自表单时)。
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 开发人员上找到了这个,但我不确定在下面使用什么作为 ("myFunction"):
var sheet = SpreadsheetApp.getActive();
ScriptApp.newTrigger("myFunction")
.forSpreadsheet(sheet)
.onFormSubmit()
.create();
表单提交不是编辑,所以onEdit触发器在这里没有用。相反,使用以下带有可安装触发器的简单函数 On Form Submission。手动设置触发器很容易:在脚本编辑器中,转到资源 > 当前项目的触发器,然后添加:
函数:
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 } );
}