繁体   English   中英

更改 Google App 脚本中的条件格式优先级

[英]Changing Conditional Format Priority in Google App Scripts

我有一个包含条件格式集合的时间表,可供多个用户使用,其中大多数用户不精通技术。 最简单的方法是允许他们拖动日程表框并进行剪切和粘贴,这对于条件格式来说效果不佳。 我意识到一种解决方案是告诉他们只复制和粘贴,但我正在尝试创建比这更强大的东西。

我打算的解决方案是在页面上放置一个按钮,该按钮只是将条件格式重置为同一工作簿中另一个工作表上的模板。 更改时间表后,将按下按钮:

function passConditionalFormat(sourceSheetName, targetSheetName) {
      //Check what spreadsheet we're using
      var ss = SpreadsheetApp.getActive();
  
      //The source of data formatting rules
      var sourceSheet = ss.getSheetByName("Safety Sheet");
  
  //(start row, start column, #of rows to grab, #of columns to grab)
  var sourceRange = sourceSheet.getRange(4, 2, 25, 8);
  
      //The target sheet of data formatting rules
      var targetSheet = ss.getSheetByName("test sheet");
      //Set target range
      var targetRange = targetSheet.getRange("B4:I28");
  
      //clear formatting in target sheet area
      targetRange.clearFormat();
      
      //(column, columnEnd, row, rowEnd)
      sourceRange.copyFormatToRange(targetSheet, 2, 9, 4, 28);
  
    }

但是,我发现当我清除以前的格式然后插入模板格式时,条件格式的优先级不同,这给我带来了一些问题。 确实注意到新的优先级恰好是我应用条件格式的顺序,所以我可能只是删除它们并以不同的顺序编写它们......

这是运行代码前的截图

这是运行代码后的截图

我正在寻找一种使用 Google Apps Script 修改条件格式优先级的方法,可以通过将列表中的一个拖到另一个上来手动更改。 对此的任何帮助将非常非常感谢!

据我所知,App Scripts 无法访问条件格式的优先级。

Alessandro 认为copyFormatToRange将复制格式的优先级以及条件格式本身。 虽然我不能完全拒绝这个假设,但我可以说,就我而言,条件格式的优先级发生了变化,我不知道还有其他原因。

以下是实现我的特定目标的一种方法,尽管它没有我想要的那么强大。 似乎copyFormatToRange按照最初创建的顺序将条件格式应用于新范围:第一个创建的条件。 格式将具有最高优先级。 所以我最终重新应用了我在模板表中寻找的条件格式,但按照我正在寻找的顺序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM