Как запустить несколько функций onEdit в одном скрипте Google (листы Google)? - PullRequest
0 голосов
/ 20 марта 2019

Я пробовал много разных способов, и ни один из них не работал.

Я хочу функцию, которая, когда кто-то что-то печатает, содержимое ячейки автоматически превращается в верхний регистр и удаляет все акценты.

Например: если я наберу "áéîõÂÃüÚ", он сразу станет "AEIOAAUU".

В следующих случаях я пробовал:

  1. Измените букву с ударением на обычную букву, затемвсе в верхнем регистре, в одном и том же onEdit;
  2. Разделение функций в разных onEdit;
  3. Только один onEdit, который вызывает функции в другом скрипте.

Это мойкод:

function onEdit(e){
  try{
    myA(e);
    myE(e);
    myUpper(e);
  }
  catch(e){
    if(e){}}
}

function myFunction(){
  var app= SpreadsheetApp;
  var targetSheet= app.getActiveSpreadsheet().getSheetByName("Sheet1");

  onEdit();
} 

Функции "myA", "myE" и "myUpper", каждая, в отдельных скриптах, и они:

function myUpper(e) {
   e.range.setValue(e.value.toUpperCase());
}

function myE(e) {
  e.range.setValue(e.value.replace(new RegExp("[[éèêëÉÈÊË]", 'g'),"E"));
}

function myA(e) {
  e.range.setValue(e.value.replace(new RegExp("[[áàâäãÁÀÂÄÃ]", 'g'),"A"));
}

Запуск всего этого кода,работает только функция "myE".Другими словами, только буква «е» с акцентами превращается в «Е».

Что я делаю не так?

Заранее спасибо.

1 Ответ

0 голосов
/ 20 марта 2019

Вы можете использовать один onEdit() триггер, чтобы сделать это.

function onEdit(e){
  var ss = e.source;
  var sheet = ss.getSheetByName('Sheet1');
  var value = e.value;
  var range = e.range;
  value = value.replace(new RegExp("[[éèêëÉÈÊË]", 'g'),"E");
  value = value.replace(new RegExp("[[áàâäãÁÀÂÄÃ]", 'g'),"A");
  value = value.toUpperCase();
  range.setValue(value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...