【问题标题】:How do I make this google scripts code less repetitious?如何使此 google 脚本代码不那么重复?
【发布时间】:2019-06-30 10:46:05
【问题描述】:

我从 Google Scripts 帮助文件中复制/粘贴/修改了这段代码:

function DHGreen() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("D3:P43");
var rule = SpreadsheetApp.newConditionalFormatRule()
    .whenTextEqualTo("DH")
    .setBackground("#00ff00")
    .setRanges([range])
    .build();
var rule2 = SpreadsheetApp.newConditionalFormatRule()
    .whenTextEqualTo("Mazie")
    .setBackground("#0000ff")
    .setRanges([range])
    .build();
var rule3 = SpreadsheetApp.newConditionalFormatRule()
    .whenTextEqualTo("Herald")
    .setBackground("#9900ff")
    .setRanges([range])
    .build();
var rules = sheet.getConditionalFormatRules();
rules.push(rule);
rules.push(rule2);
rules.push(rule3);
sheet.setConditionalFormatRules(rules);
}

我觉得应该有一种方法可以更有效地做到这一点,但由于我仍在复制/粘贴,更改内容并希望它仍然适用于学习 Google 脚本的阶段(更熟悉 VBA),我'我只是不知道从哪里开始。任何帮助表示赞赏。

【问题讨论】:

    标签: javascript optimization google-apps-script


    【解决方案1】:

    您可以使用函数来创建规则,而不是重复该代码。

    function makeRule(range, whenTextEqualTo, setBackground) {
      return SpreadsheetApp.newConditionalFormatRule()
        .whenTextEqualTo(whenTextEqualTo)
        .setBackground(setBackground)
        .setRanges([range])
        .build();
    }
    
    function DHGreen() {
    var sheet = SpreadsheetApp.getActiveSheet();
    var range = sheet.getRange("D3:P43");
    var rules = sheet.getConditionalFormatRules();
    rules.push(makeRule(range, "DH", "#00ff00"));
    rules.push(makeRule(range, "Mazie", "#0000ff"));
    rules.push(makeRule(range, "Herald", "#9900ff"));
    sheet.setConditionalFormatRules(rules);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 2020-07-02
      • 2018-03-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 1970-01-01
      相关资源
      最近更新 更多