Скрипты Google Sheet

Я создал следующий скрипт для сортировки данных на определенных страницах в листах 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 ответ

В сценариях 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
         });
     }
 }
Другие вопросы по тегам