我有一个电子表格,屏幕截图,如果文本包含“ keto” AND “ 250g”,我想给单元格E(绿色)着色。这两个值都不只是一个。目前,我不知道如何对2个字符串执行此操作,仅对1个字符串执行此操作。这是用于1个字符串的代码:
spreadsheet.getActiveSheet().setConditionalFormatRules(conditionalFormatRules);
conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();
conditionalFormatRules.push(SpreadsheetApp
.newConditionalFormatRule()
.setRanges([spreadsheet.getRange('E1:E10000')])
.whenTextContains("Brownies")
.setBackground('#B7E1CD')
.build());
答案 0 :(得分:0)
.whenFormulaSatisfied
在评论中建议@TheMaster。
由于您的代码无效,我不得不对其重新排序。看来您在定义变量之前就在调用它们,并在构建变量之前为其设置了规则。
function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
var sheet = spreadsheet.getActiveSheet()
var conditionalFormatRules = sheet.getConditionalFormatRules();
conditionalFormatRules.push(SpreadsheetApp
.newConditionalFormatRule()
.setRanges([spreadsheet.getRange('E1:E10')])
// HERE IS THE RELEVANT METHOD
.whenFormulaSatisfied('=AND( FIND("Keto",E1) , FIND("250g",E1) )')
.setBackground('#B7E1CD')
.build());
sheet.setConditionalFormatRules(conditionalFormatRules)
}
我使用AND公式和FIND公式使它仅在单元格包含两者时才返回TRUE
。
您在复制和粘贴时可能犯了一个错误,但是请注意在致电getConditionalFormatRules
之前build()
和setConditionalFormatRules
。
这可能与您要查找的不完全相同,但是以防万一。您可以探索onEdit(e)
触发器。每次用户对工作表进行编辑时,它将运行。您使用的e
参数包含编辑的详细信息,例如范围。在这里,您可以创建一个if语句,以检查它是否包含您想要的字符串。它使您可以将检查逻辑与格式化逻辑分开。如果您需要工作表中更复杂的行为,那么条件格式将很快变得乏味。
以下是一些有关触发器的参考资料: