Как объединить функции в Google Scripts? - PullRequest
0 голосов
/ 30 апреля 2019

Я довольно неграмотный код, поэтому я взял материал других людей и попытался разобрать его вместе, чтобы он выглядел глупо, просто выкладывая все свои карты.

Я пытался запустить все сценарии по отдельности, но яЯ видел, что вы не можете сделать это в другом посте на этом сайте.Попытался объединить их, поиграл с ним несколько часов, но не достиг джека.

  myFunction1();
  myFunction2();
  myFunction3();
  myFunction4();
SHEET_NAME = "Top5k";
SORT_DATA_RANGE = "A2:B999";
SORT_ORDER = [
{column: 1, ascending: false},
];

function myFunction1(e){
  multiSortColumns();
}
function multiSortColumns(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(SHEET_NAME);
  var range = sheet.getRange(SORT_DATA_RANGE);
  range.sort(SORT_ORDER);
  ss.toast('Sort complete.');
}

SHEET_NAME = "TopR1";
SORT_DATA_RANGE = "A2:B999";
SORT_ORDER = [
{column: 1, ascending: false},
];

function myFunction2(e){
  multiSortColumns();
}
function multiSortColumns(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(SHEET_NAME);
  var range = sheet.getRange(SORT_DATA_RANGE);
  range.sort(SORT_ORDER);
  ss.toast('Sort one complete.');
}

SHEET_NAME = "TopR2";
SORT_DATA_RANGE = "A2:B999";
SORT_ORDER = [
{column: 1, ascending: false},
];

function myFunction3(e){
  multiSortColumns();
}
function multiSortColumns(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(SHEET_NAME);
  var range = sheet.getRange(SORT_DATA_RANGE);
  range.sort(SORT_ORDER);
  ss.toast('Sort complete.');
}

SHEET_NAME = "TopR3";
SORT_DATA_RANGE = "A2:B999";
SORT_ORDER = [
{column: 1, ascending: false},
];

function myFunction4(e){
  multiSortColumns();
}
function multiSortColumns(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(SHEET_NAME);
  var range = sheet.getRange(SORT_DATA_RANGE);
  range.sort(SORT_ORDER);
  ss.toast('Sort complete.');
}
}

Когда я запускаю скрипт как есть, он не имеет ошибок и ничего не происходит при редактировании, кроме всплывающего окна ss.toast.Сценарий должен был отсортировать все данные по 4 листам каждый раз, когда регистрировалось событие редактирования, если бы я не подделал что-то.

1 Ответ

0 голосов
/ 30 апреля 2019

На основании того, что я вижу в вашем сценарии, это должно быть в состоянии сделать это для вас.

function sortingStuff() {
  var ss=SpreadsheetApp.getActive();
  ss.getSheetByName('Top5K').getRange('A2:B999').sort({column:1,ascending:false});
  ss.getSheetByName('TopR1').getRange('A2:B999').sort({column:1,ascending:false});
  ss.getSheetByName('TopR2').getRange('A2:B999').sort({column:1,ascending:false});
  ss.getSheetByName('TopR3').getRange('A2:B999').sort({column:1,ascending:false});
  ss.toast('Sorting Complete');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...