谷歌脚本-newConditionalFormatRule;whenNumberGreaterThanOrEqual不接



我正在构建一个谷歌脚本,但在创建条件格式时遇到了问题。如果我在工作表中构建它们,则设置条件格式的范围没有问题,然后将其设置为"0";大于或等于";给它一个单元格,比如=$B$5。

当我使用脚本构建相同的东西时,它会给我一个错误,即它只接受数字而不接受单元格。。?

有人能帮我解决这个问题吗?还是根本不支持?

// What i want to work, but throws an error, since it doesn't get a number.
formatrules.push(Rule1);
var rule_builder = SpreadsheetApp.newConditionalFormatRule()
.whenNumberGreaterThanOrEqualTo("=$B$9")
.setBackground("#85e085")
.setRanges([currentsheet.getRange("H3:H8")])
.build();

// Something I tried, but it sets it to a static number and not the cell
formatrules.push(Rule1);
var rule_builder = SpreadsheetApp.newConditionalFormatRule()
.whenNumberGreaterThanOrEqualTo(sheet.getRange('B9').getValue())
.setBackground("#85e085")
.setRanges([currentsheet.getRange("H3:H8")])
.build();

建议的修改

既然您想要一个动态值,那么使用.whenFormulaSatisfied(String formula)函数怎么样?

以下是您的应用程序案例中的一个示例:

var rule_builder = SpreadsheetApp.newConditionalFormatRule()
.whenFormulaSatisfied("=H3:H8>$B$9")
.setBackground("#85e085")
.setRanges([currentsheet.getRange("H3:H8")])
.build();

参考

whenFormula满足(公式(

whenNumberGreaterThanOrEqualTo中的参数类型为Number,如此处所示的API文档中所指定。您正在传递对单元格的字符串引用。相反,您必须使用SpreadsheetApp.getActiveSheet().getRange("B9").getValue(),就像您在第二次尝试中所做的那样。您遇到的问题可以通过每次编辑电子表格时更新该规则来解决(即为创建该规则的函数创建onEdit触发器(。

当前接受的答案应保持为已接受。这只是关于OP评论的补充帖子:

再次进入范围似乎有点奇怪

您可以定义一次范围,然后使用Template文字将其合并到表达式中:

var rng = "H3:H8";
var rule_builder = SpreadsheetApp.newConditionalFormatRule()
.whenFormulaSatisfied(`=${rng}>$B$9`)
.setBackground("#85e085")
.setRanges([currentsheet.getRange(rng)])
.build();

相关内容

  • 没有找到相关文章

最新更新