Google Sheet脚本

时间:2017-06-14 20:29:36

标签: javascript google-sheets-query

我创建了以下脚本来对google工作表中的某些页面上的数据进行排序,它只会运行第二个函数而不是第一个函数。我是编程和从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 } );
 } 
}

1 个答案:

答案 0 :(得分: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
         });
     }
 }