【问题标题】:Changing Conditional Format Priority in Google App Scripts在 Google App 脚本中更改条件格式优先级
【发布时间】:2020-10-23 03:19:54
【问题描述】:

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

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

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);
  
    }

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

This is a screenshot before running code

This is a screenshot after running code

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

【问题讨论】:

  • 你能分享你用来运行脚本的电子表格吗?您的示例屏幕截图很奇怪,范围也发生了变化。它使用空工作表按我的预期工作。
  • 编辑帖子以包含链接。感谢您的观看!
  • 您的答案不正确,您报告的行为不可重现。您是否尝试过在全新的工作表中使用您的脚本?尝试在运行脚本之前从测试表中删除整个格式。
  • 我不确定您在这种情况下所说的“可重现”是什么意思。
  • 按照优先级顺序重新应用模板表中的条件格式是其他人可以在自己的表中复制的内容。如果他们提出不同的结果,我会很高兴看到它。在应用新格式之前,代码本身已经从测试表上的应用范围中清除了格式。问题假设测试表的格式会被其他用户搞砸,因此从干净的测试表开始是不够的。

标签: google-apps-script google-sheets conditional-formatting schedule


【解决方案1】:

据我所知,应用脚本无法访问条件格式的优先级。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 2012-03-03
    • 2021-05-20
    • 2022-11-24
    • 2011-06-10
    • 2018-09-29
    • 2012-05-26
    相关资源
    最近更新 更多