Google Apps 脚本电子表格条件格式规则生成器正在将规则应用到与我编写的范围不同的范围

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

我有一个项目,我想保存某人的回复并将其记录到谷歌电子表格中。如果响应与第二行的值完全相同,则需要对响应进行颜色编码。

  var conditionalRange = sheet.getRange("D4:F20");

  var correctRule = SpreadsheetApp.newConditionalFormatRule()
    .whenFormulaSatisfied('=INDIRECT("R" & ROW() & "C" & COLUMN(), FALSE) = INDIRECT("R2C" & COLUMN(), FALSE)')
    .setBackground('#4a86e8')
    .setRanges([conditionalRange])
    .build();

  var rules = sheet.getConditionalFormatRules();

  rules.push(correctRule);
  sheet.setConditionalFormatRules(rules);

如您所见,我指定了 D4:F20 范围作为格式应应用的范围。但执行后,规则显示如下: Apply to Range = D1:G2 现在已应用于 D1:G2

我现在很困惑,因为我认为 setRanges 意味着将这个公式应用于这个范围,但也许我理解错了?

编辑: 好吧我刚刚发现用 clasp 推有时会导致代码推不出来...也许推太多会导致代码更新延迟?

google-sheets google-apps-script google-sheets-formula google-sheets-api clasp
1个回答
0
投票

尝试删除 Google 表格中的条件格式规则并重新运行该函数。如果它回到正确的范围,以下内容可能会对您有所帮助。如果它返回但在错误的范围内,那么可能与您提到的 Clasp 有关,但我对 Clasp 没有任何了解来帮助您。

如果列出了相同的公式并且它已经有一个范围,则该范围不会更新。当我创建使用格式构建器的 Apps 脚本时,我通常喜欢清除所有格式并使用特定函数再次构建它们。

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.clearConditionalFormatRules();
© www.soinside.com 2019 - 2024. All rights reserved.