【问题标题】:Google Script: How to implement conditional formatting into spreadsheetGoogle Script:如何在电子表格中实现条件格式
【发布时间】:2013-11-28 19:23:17
【问题描述】:

数据:

  • B1: =GoogleClock // 此函数实时显示小时。 28/11/2013 15:45:00
  • C3: 0:15:00 //时间以小时为单位
  • E3: 28/11/2013 15:45:00
  • F3: =SUM(E3+C3) //结果为 28/11/2013 16:00:00
  • G3: =IF(C3>0;IF($B$1>=$F3;"呼叫";"及时");" ")

该公式将检查 B1 >= F3 是否及时调用结果。

正如您在此示例中看到的,现在是 15:45,G3 将显示“及时”,但是当 =googleclock 函数标记 28/11/2013 16:00:00 时,G3 会将值更改为 Call。在那一刻背景应该从绿色变为红色-

情况:

我在 G 列中有一个公式,该公式的结果是“Call”或“In Time”。

我使用 Menu > Format > Conditional Formatting 将条件格式设置到 G 列。但条件仅适用于现有行。

问题:

如果我添加新行,则条件格式不会设置为该新闻行。

一旦解决方案是创建一个检测单元格中值的脚本,如果值为 Call,则将 backgroundcolor 变为 Red,如果 In Time 变为绿色。

如果我将此脚本设置为在 OnEdit 中运行或每 5 分钟或每分钟运行一次,系统会变慢,因为此脚本每次都会检查该值。

是否有任何方法可以像我从菜单中设置的那样设置条件格式?

【问题讨论】:

    标签: google-apps-script google-sheets google-spreadsheet-api gs-conditional-formatting


    【解决方案1】:

    Range.copyTo() 可以复制条件格式。

    例如,这个 sn-p 会将条件格式从单元格 A1 复制到列的其余部分:

    function copyFormat() {
      var source = ss.getRange('A1');
      var destination = ss.getRange('A2:A');
      source.copyTo(destination, {formatOnly:true});
    }
    

    【讨论】:

    • 非常感谢....解决方法如果有效...唯一的问题是如果有人修改 A1 格式或重置该单元格。条件格式将丢失。是否存在从脚本配置条件格式并将其应用于单元格的任何方法?我的意思是相同的,但更改配置该部分的脚本的 ss.getRange 并应用于 A2:A... 这样,如果有人更改或重置格式,脚本将自动再次应用它
    • 这可能吗?也许吧,我没试过。我想一个 onChange() 触发器可以假定格式已更改,并从列中未更改的任何其他单元格中复制它。
    猜你喜欢
    • 2018-12-09
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 2020-11-24
    相关资源
    最近更新 更多