Сценарий Google Apps: Применение правила форматирования к конкретному листу

#google-apps-script #google-sheets #conditional-formatting

#google-apps-script #google-таблицы #условное форматирование

Вопрос:

согласно документам: https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder

 var sheet = SpreadsheetApp.getActiveSheet();
 

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

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("resultat");
 

Но с этим именем листа я получаю :

 TypeError: ThisSheet.newConditionalFormatRule is not a function
 

код для вызова:

  var ThisSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("resultat");
var range = ThisSheet.getRange("C:D") // only want it to select C element.
 ThisSheet.clearConditionalFormatRules();
  var rule1 = ThisSheet.newConditionalFormatRule()
      .whenTextContains("NO")
      .setBackground("#b3cfb0")
      .setRanges([range])
      .build();    
  var rules = ThisSheet.getConditionalFormatRules();
  rules.push(rule1);
  ThisSheet.setConditionalFormatRules(rules);
  
 

Комментарии:

1. Это что, опечатка? вы хотели sheet вместо ThisSheet этого ? где ThisSheet определено?

2. ты прав @marios

3. @maria jsfiddle.net/q8fcsL05 (не связанные)

Ответ №1:

Точки изменения:

  • Из вашего сценария я не могу понять ThisSheet . Если ThisSheet есть sheet var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("resultat"); , newConditionalFormatRule() это метод класса SpreadsheetApp . При этом возникает ошибка.

Когда ThisSheet sheet var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("resultat"); , как насчет следующего изменения?

Модифицированный сценарий:

 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("resultat");
var range = sheet.getRange("C:D") // only want it to select C element.
sheet.clearConditionalFormatRules();
var rule1 = SpreadsheetApp.newConditionalFormatRule()
  .whenTextContains("NO")
  .setBackground("#b3cfb0")
  .setRanges([range])
  .build();
var rules = sheet.getConditionalFormatRules();
rules.push(rule1);
sheet.setConditionalFormatRules(rules);
 
  • С помощью измененного выше сценария правило условного форматирования устанавливается в диапазоне «C: D».
  • Если вы хотите установить правило условного форматирования для столбца «C», пожалуйста, измените var range = sheet.getRange("C:D") на var range = sheet.getRange("C:C") .

Ссылка:

Комментарии:

1. как вы упомянули, этот лист соответствует переменной листа.

2. @maria Спасибо за ответ. Я рад, что ваша проблема была решена.