【问题标题】:Google app script to conditional format cell border谷歌应用脚​​本条件格式单元格边框
【发布时间】:2020-10-31 00:57:54
【问题描述】:

很抱歉提出愚蠢的问题。 但我真的需要帮助 我有一个 26 列和 96 个原始数据的谷歌表。如果单元格包含与 Z6 单元格值相同的文本,我想更改单元格边框粗细。有没有办法为此编写谷歌应用脚​​本代码。

我尝试了这段代码但失败了

function formatting() {
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Chart');
 var range = sheet.getRange("A1:Z100")
 var ruleRed = SpreadsheetApp.newConditionalFormatRule()
.whenFormulaSatisfied("=$Z$6")
.setBackground("green")
.build();

}

请帮忙

【问题讨论】:

    标签: google-sheets formatting conditional-statements


    【解决方案1】:

    几件事:

    • 条件格式的正确公式是: "=A1=$Z$6"
    • Apps 脚本中的相应请求(包括必要的范围设置)将是: var ruleRed = SpreadsheetApp.newConditionalFormatRule() .whenFormulaSatisfied("=A1=$Z$6") .setBackground("green") .setRanges([range]) .build();
    • 创建条件规则后,需要应用到工作表,例如sheet.setConditionalFormatRules([ruleRed]);

    但是

    • 在条件格式范围内无法对边框进行格式化,您需要采取其他方法
    • 您可以使用Apps脚本方法setBorder()
    • 要在 Apps 脚本中设置边框,您需要
      • 检索Z6的值
      • 循环遍历您的范围,将所有值与Z6 进行比较
      • 为满足条件的每个单元格分配边框

    使用 Apps 脚本进行边框格式和条件格式的示例:

    function formatting() {
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Chart');
      var range = sheet.getRange("A1:Z100")
      //border formatting 
      var value = sheet.getRange("Z6").getValue();
      var values = range.getValues();
      for (var i = 0; i < values.length; i++){
        for (var j = 0; j < values.length; j++){
          if (values[i][j] == value){
            range.getCell(i+1, j+1).setBorder(true, true, true, true, false, false);
          }
        }
      }
      //conditional formatting 
      var ruleRed = SpreadsheetApp.newConditionalFormatRule()
      .whenFormulaSatisfied("=A1=$Z$6")
      .setBackground("green")
      .setRanges([range])
      .build();
      sheet.setConditionalFormatRules([ruleRed]);
    }
    

    【讨论】:

    猜你喜欢
    • 2018-10-27
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    相关资源
    最近更新 更多