Скрыть строку в Google Sheets, если ячейка содержит "нет" - несколько листов

Я работаю с 1 главной таблицей, и из 4 таблиц для конкретного продукта извлекается информация. Если соответствующая информация не извлекается, в таблицах меньшего размера отображается "нет" во всех ячейках. Я хочу, чтобы строки с "нет" были скрыты.

Я что-то взломал, что-то вроде этого. Но я не могу заставить его работать на всех 4 листах. Я пробовал getSheets(), я пробовал getSheetByName(name) и называл все 4 листа... это не работает.

Вот что у меня так далеко:

function onOpen() {
  var ss = SpreadsheetApp.getActive();
  var sheets = ss.getSheets(); // array of all sheet objects in ss
  var numSheets = ss.getNumSheets(); // count of sheets

//show all the rows
  sheet.showRows(1, maxRows);

//get data from clumn C
  var data = sheet.getRange('C:C').getValues();

//iterate over all rows
  for(var i=0; i< data.length; i++){
//compare column, if no, then hide row
    if(data[i][0] == 'no'){
      sheet.hideRows(i+1);
  }
 }
}

1 ответ

Решение

Попробуйте: (отредактировано)

function onOpen() {
  var ss = SpreadsheetApp.getActive();
  var sheets = ss.getSheets(); // array of all sheet objects in ss
  var numSheets = ss.getNumSheets(); // count of sheets
for(sheet in sheets) {
  if(sheets[sheet].getSheetName() == "Master") continue;
//show all the rows
  sheets[sheet].showRows(1, sheets[sheet].getMaxRows());

//get data from clumn C
  var data = sheets[sheet].getRange('C:C').getValues();

//iterate over all rows
  for(var i=0; i< data.length; i++){
//compare column, if no, then hide row
    if(data[i][0] == 'no'){
      sheets[sheet].hideRows(i+1);
  }
 }
 }
}
Другие вопросы по тегам