Как повлиять на несколько листов из скрипта - PullRequest
0 голосов
/ 27 февраля 2019

В Google Sheets я хочу скрыть строки со значением 'Del' по всему документу, то есть по нескольким листам.Кроме того, я хотел бы, чтобы это происходило только при обновлении ячейки E39 из листа 'Pricing breakdown'.

Мой текущий код отлично работает для листа 'Pricing breakdown', но я бы хотел, чтобы он также влиял на листы 'Project Plan' и 'Payment Plan', плюс бонусные баллы, если вы можете помочь мне запустить этот скрипт только при изменении E39 с листа 'Pricing breakdown'.

function onEdit(event){
      var s = SpreadsheetApp.getActive().getSheetByName('Pricing breakdown');
      s.showRows(1, s.getMaxRows());

  s.getRange('A:A')
    .getValues()
    .forEach( function (r, i) {
    if (r[0] == 'Del') 
      s.hideRows(i + 1);
    });
}

1 Ответ

0 голосов
/ 27 февраля 2019

Попробуйте это:

function onEdit(e){
  var rg=e.range;
  var sh=rg.getSheet();
  if(sh.getName()!='Pricing breakdown'){return;}
  if(e.range.getA1Notation() == 'E39') {
    var shA=['Pricing breakdown','Project Plan','Payment Plan'];
    for(var j=0;j<shA.length;j++) {
      var s=e.source.getSheetByName(shA[j]);
      s.showRows(1,s.getMaxRows());
      //e.source.toast(s.getName());
      s.getRange('A:A').getValues()
      .forEach( function (r, i) {
        if (r[0] == 'Del') 
          s.hideRows(i + 1);
      });
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...