为了账号安全,请及时绑定邮箱和手机立即绑定

newConditionalFormatRule;当NumberGreaterThanOrEqua

newConditionalFormatRule;当NumberGreaterThanOrEqua

神不在的星期二 2023-08-05 10:18:19
我正在构建一个谷歌脚本,但在创建条件格式时遇到问题。如果我在工作表中构建它们,则设置条件格式的范围没有问题,然后将其设置为“大于或等于”并给它一个单元格,例如 =$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 cellformatrules.push(Rule1);  var rule_builder = SpreadsheetApp.newConditionalFormatRule()  .whenNumberGreaterThanOrEqualTo(sheet.getRange('B9').getValue())  .setBackground("#85e085")  .setRanges([currentsheet.getRange("H3:H8")])  .build();
查看完整描述

3 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

建议修改

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

这是您的应用案例中的一个示例:

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


查看完整回答
反对 回复 2023-08-05
?
温温酱

TA贡献1752条经验 获得超4个赞

当前接受的答案应保持接受状态。这只是对OP评论的补充:

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

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

  var rng = "H3:H8";

  var rule_builder = SpreadsheetApp.newConditionalFormatRule()

  .whenFormulaSatisfied(`=${rng}>$B$9`)

  .setBackground("#85e085")

  .setRanges([currentsheet.getRange(rng)])

  .build();


查看完整回答
反对 回复 2023-08-05
?
POPMUISE

TA贡献1765条经验 获得超5个赞

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



查看完整回答
反对 回复 2023-08-05
  • 3 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信