我有一个项目,我想保存某人的回复并将其记录到谷歌电子表格中。如果响应与第二行的值完全相同,则需要对响应进行颜色编码。
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 范围作为格式应应用的范围。但执行后,规则显示如下: 现在已应用于 D1:G2
我现在很困惑,因为我认为 setRanges 意味着将这个公式应用于这个范围,但也许我理解错了?
编辑: 好吧我刚刚发现用 clasp 推有时会导致代码推不出来...也许推太多会导致代码更新延迟?
尝试删除 Google 表格中的条件格式规则并重新运行该函数。如果它回到正确的范围,以下内容可能会对您有所帮助。如果它返回但在错误的范围内,那么可能与您提到的 Clasp 有关,但我对 Clasp 没有任何了解来帮助您。
如果列出了相同的公式并且它已经有一个范围,则该范围不会更新。当我创建使用格式构建器的 Apps 脚本时,我通常喜欢清除所有格式并使用特定函数再次构建它们。
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.clearConditionalFormatRules();