0

我创建了以下脚本来对谷歌表格中某些页面上的数据进行排序,它只会运行第二个函数而不是第一个函数。我是编程和从 excel 切换到工作表的新手。我确信它的东西很小而且很明显,但我无法弄清楚。我很感激任何帮助。

function onEdit(event){
var sheet = event.source.getActiveSheet();
if(sheet.getName() ==='ADMIN')
var editedCell = sheet.getActiveCell();

var columnToSortBy = 1;
var tableRange = "A2:G48"; // What to sort.

if(editedCell.getColumn() == columnToSortBy){   
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy, ascending: true } );
}
}

function onEdit(event){
var sheet = event.source.getActiveSheet();
if(sheet.getName() ==='HQ', 'ARMT', 'MAINT', 'AVNX', 'SHOPS')
var editedCell = sheet.getActiveCell();

var columnToSortBy = 2;
var tableRange = "A4:D40"; // What to sort.

if(editedCell.getColumn() == columnToSortBy){   
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy, ascending: true } );
 } 
}
4

1 回答 1

0

在 javascript 和 google 脚本中,函数是对象。您在这里所做的是创建一个对象(函数 onEdit),然后再次创建它。这就像将一个名为 xyz 的变量设置为 4,然后将同一个变量设置为 14。最后一组才是最重要的。您可以通过将函数合并在一起来完成您想要的操作,以便您拥有一个 onEdit,或者以不同的方式命名一个(或两者)并让 onEdit 调用它们。

 function onEdit(event) {
     first(event);
     second(event);
 }

 function first(event) {
     var sheet = event.source.getActiveSheet();
     if (sheet.getName() === 'ADMIN')
         var editedCell = sheet.getActiveCell();

     var columnToSortBy = 1;
     var tableRange = "A2:G48"; // What to sort.

     if (editedCell.getColumn() == columnToSortBy) {
         var range = sheet.getRange(tableRange);
         range.sort({
             column: columnToSortBy,
             ascending: true
         });
     }
 }

 function second(event) {
     var sheet = event.source.getActiveSheet();
     if (sheet.getName() === 'HQ', 'ARMT', 'MAINT', 'AVNX', 'SHOPS')
         var editedCell = sheet.getActiveCell();

     var columnToSortBy = 2;
     var tableRange = "A4:D40"; // What to sort.

     if (editedCell.getColumn() == columnToSortBy) {
         var range = sheet.getRange(tableRange);
         range.sort({
             column: columnToSortBy,
             ascending: true
         });
     }
 }
于 2017-07-07T03:06:08.740 回答