Как применить скрипт приложения Google к листам, содержащим определенное значение в определенном месте?

#google-apps-script #google-sheets

Вопрос:

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

     var sheet = SpreadsheetApp.getActiveSheet();
    var range = sheet.getRange("A1:B3");
    var rule = SpreadsheetApp.newConditionalFormatRule()
      .whenNumberBetween(1, 10)
      .setBackground("#FF0000")
      .setRanges([range])
      .build();
   var rules = sheet.getConditionalFormatRules();
   rules.push(rule);
   sheet.setConditionalFormatRules(rules);
 

Я хочу применить указанные правила ТОЛЬКО к листам, которые « Type: ABC » расположены в ячейке « A1 »

Как это можно сделать, пожалуйста?

Ответ №1:

Возможно, что-то вроде этого:

 function myfunction() {
  var ss = SpreadsheetApp.getActive();
  var shts = ss.getSheets().filter(s => sh.getRange('A1').getValue() == "Type: ABC");
  shts.forEach(sheet => {
    var sheet = SpreadsheetApp.getActiveSheet();
    var range = sheet.getRange("A1:B3");
    var rule = SpreadsheetApp.newConditionalFormatRule()
      .whenNumberBetween(1, 10)
      .setBackground("#FF0000")
      .setRanges([range])
      .build();
    var rules = sheet.getConditionalFormatRules();
    rules.push(rule);
    sheet.setConditionalFormatRules(rules);
  });