以编程方式设置全局条件格式规则

时间:2016-05-09 12:28:20

标签: google-apps-script google-sheets

如果“status”列的行不为空,我想设置“task”列中每行的背景颜色。这很容易设置。但是,将这些规则设置在多个列和工作表1到表100之间可能非常繁琐。

鉴于所有工作表都具有相同的列“任务”和“状态”,应该可以在每个工作表上设置条件规则。我该如何以编程方式执行此操作?

1 个答案:

答案 0 :(得分:1)

您可以使用脚本来完成任务。据我所知,脚本here's the issue无法进行条件格式化。但您可以复制格式:

  1. 在'密钥表'
  2. 上制作一个条件格式规则
  3. 运行脚本
  4. 这里是要添加到脚本编辑器中的代码:

    function loopSheetsCopyFormatting() {
    
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheets = ss.getSheets();
    
      // define Key Sheet
      var keySheet = ss.getSheetByName('Sheet1'); // change to your's
      // define range with formatting
      var rangeAddress = 'A1:A1000'; // change to your's
    
      var sampleRange = keySheet.getRange(rangeAddress);
      var column = sampleRange.getColumn();
      var columnEnd = column + sampleRange.getWidth() - 1;
      var row = sampleRange.getRow();
      var rowEnd = row + sampleRange.getHeight() - 1; 
    
      for (var sheetNum = 0; sheetNum < sheets.length; sheetNum++) {
    
         var copyToSheet = sheets[sheetNum];
         // copy formatting
         sampleRange.copyFormatToRange(
           copyToSheet, 
           column, 
           columnEnd, 
           row, 
           rowEnd);     
      }
    
    }
    

    更改行:

    var keySheet = ss.getSheetByName('Sheet1'); // change to your's
    

    和这一个:

    var rangeAddress = 'A1:A1000'; // change to your's
    

    然后运行脚本一次以复制farmatting。