我在网上找到以下部分脚本,用于在添加新内容时按字母顺序排序。该脚本对相关列进行排序,并使相邻列保持对齐。
然而,我遇到的问题是,这似乎只适用于我的工作表中的一个内容区域。我复制并修改了脚本,希望在同一张纸上的两个表中工作,但只有第二个表似乎正在运行。似乎无法找到我忽略的东西。 TIA提供任何帮助!
/**
* Automatically sorts the Nth column (not the header row) Ascending.
*/
function onEdit(event){
var sheet = event.source.getActiveSheet();
var editedCell = sheet.getActiveCell();
var columnToSortBy = 4;
var tableRange = "B4:F31"; // Area to sort.
var columnToSortNext = 3;
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( [{ column : columnToSortBy, ascending: true }, {column: columnToSortNext, ascending: true}] );
}
}
/**
* Automatically sorts the Nth column (not the header row) Ascending.
*/
function onEdit(event2){
var sheet2 = event2.source.getActiveSheet();
var editedCell2 = sheet2.getActiveCell();
var columnToSortBy2 = 9;
var tableRange2 = "H4:J31"; // What to sort.
var columnToSortNext2 = 8;
if(editedCell2.getColumn() == columnToSortBy2){
var range2 = sheet2.getRange(tableRange2);
range2.sort( [{ column : columnToSortBy2, ascending: true }, {column: columnToSortNext2, ascending: true}] );
}
}
该代码最初是为一个排序实例编写的。我的修改版本有两个活动区域/表格并不适合在这两个区域中工作。 " 2"方似乎工作正常。代码的前半部分没有。可能是重复变量的问题?谢谢!
答案 0 :(得分:0)
你不能有两个onEdits。您可以从onEdit中调用其他函数,或者您可以像这样组合使用if if:
function onEdit(event){
var sheet = event.source.getActiveSheet();
var editedCell = sheet.getActiveCell();
var columnToSortBy = 4;
var columnToSortBy2 = 9;
if(editedCell.getColumn() == columnToSortBy){
var tableRange = "B4:F31"; // Area to sort.
var columnToSortNext = 3;
var range = sheet.getRange(tableRange);
range.sort( [{ column : columnToSortBy, ascending: true }, {column: columnToSortNext, ascending: true}] );
}
else if(editedCell.getColumn() == columnToSortBy2){
var tableRange2 = "H4:J31"; // What to sort.
var columnToSortNext2 = 8;
var range2 = sheet.getRange(tableRange2);
range2.sort( [{ column : columnToSortBy2, ascending: true }, {column: columnToSortNext2, ascending: true}] );
}
else{
return
}}