как применить код ко всем вкладкам на листе Google - PullRequest
0 голосов
/ 14 февраля 2020

Новичок в Google Script ... так что извините ..

У меня есть код ниже, который работает ... однако у меня есть еще десять вкладок, к которым это необходимо применить ... есть ли способ написать это, чтобы вам не приходилось ссылаться на каждый активный лист?

идея состоит в том, чтобы автоматически скрывать строки и столбцы, если в них есть определенное значение ...

function onOpen()
{
  var s = SpreadsheetApp.getActive().getSheetByName('O4');
  s.showRows(1, s.getMaxRows());

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

  var b = SpreadsheetApp.getActive().getSheetByName('O4');
b.showColumns(1, b.getMaxColumns());
b.getRange('135:135')
    .getValues()[0]
    .forEach(function (r, i) {
        if (r && r == 'N') b.hideColumns(i + 1)
    });

    var s = SpreadsheetApp.getActive().getSheetByName('OG3');
  s.showRows(1, s.getMaxRows());

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

  var b = SpreadsheetApp.getActive().getSheetByName('OG3');
b.showColumns(1, b.getMaxColumns());
b.getRange('135:135')
    .getValues()[0]
    .forEach(function (r, i) {
        if (r && r == 'N') b.hideColumns(i + 1)
    });
}

1 Ответ

2 голосов
/ 14 февраля 2020

Вы можете просто l oop по всем вкладкам на вашем листе, используя этот фрагмент.

var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
sheets.forEach(function (sheet) {
  callYourFunction(sheet)
})

Если вам нужно применить код на определенных листах, сделайте это.

var sheets = ['SheetA', 'SheetB', 'SheetG', 'SheetH', 'SheetM']
for (var i = 0; i < sheets.length; i++) {
  var sheetName = sheets[i]
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  if (sheet != null) {
    callYourFunction(sheet)
  }
}

Надеюсь, что это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...