首页 > 解决方案 > .setrange 的 Google Sheet ConditionalFormatRuleBuilder 问题

问题描述

这里是新用户,不太精通代码。我正在为我们公司制作一份 COVID-19 表格,并寻求有关条件格式问题的帮助。SOW:目前我们有一个带有简单问题的谷歌表格,员工每天到达时都会填写这些问题,这些数据填充在谷歌表格上。每天晚上运行一个谷歌触发器,删除 200 行谷歌表的第二天条目,当该脚本运行时,它会弄乱我的手动条件格式,所以我试图运行删除脚本,然后运行一个将应用条件格式的脚本每天晚上换新床单,以便第二天一切准备就绪。

这是目前我正在运行的每晚删除行的内容:

***function deleteResponses() {     
var ss = SpreadsheetApp.openById('Sheet_ID');     
var sheet = ss.getSheets()[0];  
sheet.deleteRows(2, 200);  
 };***

这是我添加到它并尝试运行并得到以下错误的条件格式脚本,我希望有人可以帮助我。

**function deleteResponses() {  
  var ss = SpreadsheetApp.openById('Sheet_ID');  
  var sheet = ss.getSheets()[0];  
  sheet.deleteRows(2, 200);  
};  
var sheet = SpreadsheetApp.openById('Sheet_ID');  
var range = sheet.getRange('C2:C1010');  
var rule = SpreadsheetApp.newConditionalFormatRule()  
   .whenTextContains('No')  
    .setBackground('#FF0000')  
    *.setRanges('C2:C1010')*  
    .build();  
var rules = sheet.getConditionalFormatRules();  
rules.push(rule);  
sheet.setConditionalFormatRules(rules);**

我收到这个错误。
“消息详细信息异常:参数(字符串)与 SpreadsheetApp.ConditionalFormatRuleBuilder.setRanges 的方法签名不匹配。(第 12 行,文件“代码”)”

任何可以帮助我的人,我将不胜感激!

标签: google-apps-scriptgoogle-sheetstriggers

解决方案


条件规则范围是复数形式,setRanges 采用它们的列表。它应该是范围列表,而不是A1 符号列表。

因此,您必须首先从 A1 表示法构建范围,然后将其传递给规则构建器,例如:

var range = sheets.getRange("A1:A1010");
var ranges = [range]; // You can add more ranges to the same rule
var rule = SpreadsheetApp.newConditionalFormatRule().setRanges(ranges)...

注意:请注意,您正在传递一个范围对象列表。


参考:


推荐阅读