应用程序脚本条件格式在我手动覆盖之前无法正常工作

问题描述 投票:0回答:1

我编写了一个Apps脚本代码,用于在范围上创建条件格式。在运行脚本之后,条件格式被完美地创建,但它不能单独工作:我必须手动输入格式>条件格式>输入我创建的valdation并保存它(不更改任何东西)让它工作正如它应该。

    var hojaCamada = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(camada);
          var range = hojaCamada.getRange("K6:K100");
          var rule = SpreadsheetApp.newConditionalFormatRule()
          .whenFormulaSatisfied('=Y($J6 < $I$3;$K6<1)')
          .setBackground("#ea9999")
          .setRanges([range])
          .build();
          var rules = hojaCamada.getConditionalFormatRules();
          rules.push(rule);
          hojaCamada.setConditionalFormatRules(rules);

任何人都可以帮我弄清问题是什么?提前致谢。

标记

google-apps-script google-sheets format spreadsheet
1个回答
1
投票

我没有看到你的代码有什么问题,我会分享一些我做的不同的事情,

我通过清除现有规则来启动我的颜色功能。

  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getSheetByName("x");
  sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).activate();
  sheet.clearConditionalFormatRules();
  var conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();

我也在每个规则中手动完成我的范围

  var rule = SpreadsheetApp.newConditionalFormatRule()
  .setFontColor('#a2c8ec')
  .setBackground('black')
  .whenFormulaSatisfied('=$D1=1')
  .setRanges([spreadsheet.getRange('A:J')])
  .build();  
  conditionalFormatRules.push(rule);

  sheet.setConditionalFormatRules(conditionalFormatRules);

在你的位置我会做这两件事,改变你选择范围的方式,并在每次运行函数时清除所有旧的格式。

© www.soinside.com 2019 - 2024. All rights reserved.