当单元格具有特定值的数据时,如何连续设置背景颜色

时间:2016-04-03 15:08:54

标签: google-apps-script google-sheets

我正在尝试创建一个Google电子表格脚本,只要单个列的每一行中的特定单元格的值超过100%,就会更改行的背景颜色。在搜索并尝试为我的需求配置这么多脚本之后,我并不是最好的说我做到了。

我想做什么:

  • 这是link to my Sheet
  • 如您所见,这是一张包含学生姓名和学位的表格。此工作表有5列500行。
  • 我想在学生学位超过或等于100的每一行中设置背景颜色(例如:#2fb726 )。
  • 这就是我在想的......

    Dim green = #2fb726
    Dim white = #ffffff
    
    For E_rows = 2 to 500 
      If E(E_rows) >=100 Then
        A(E_rows).backgroundcolor = green
        B(E_rows).backgroundcolor = green
        C(E_rows).backgroundcolor = green
        D(E_rows).backgroundcolor = green
        E(E_rows).backgroundcolor = green
      Else
        A(E_rows).backgroundcolor = white
        B(E_rows).backgroundcolor = white
        C(E_rows).backgroundcolor = white
        D(E_rows).backgroundcolor = white
        E(E_rows).backgroundcolor = white
      End If
    Next E_rows
    

这怎么可能在Google电子表格脚本中?

4 个答案:

答案 0 :(得分:4)

您实际上可以使用条件格式执行此操作:

申请范围:输入A2:E500

然后对于“格式化单元格,如果...”选择自定义公式并输入:

=$E$2:$E>=100

并选择您想要的任何颜色......这是一个示例屏幕截图:

enter image description here

答案 1 :(得分:2)

没有专家,但也许是这样的:

  var green = "#2fb726"
  var white = "#ffffff"

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  for (var i=2; i<500; i++) {
    var range = sheet.getRange(i, 1, 1, 5);
    var color;
    if (sheet.getRange(i, 5).getValue() >= 100) {
      color = green;
    } else {
      color = white;
    }

    range.setBackground(color);
  }

答案 2 :(得分:0)

在挖掘社区时,我会继续前进。 我找到了这个answer,它向您展示了如何根据特定单元格的值更改行的背景颜色(单元格颜色)。

既然你提到你希望这个通过脚本运行,我假设你希望自动运行吗?所以环顾四周,在creating custom menus上找到了这个页面,在示例中,它调用了onOpen()函数。

所以我修改了类似帖子的答案中的代码,在onOpen函数中调用了它,保存了脚本,刷新了文档,并设法获得了这样的结果:

enter image description here

答案 3 :(得分:-1)

我建议你使用条件格式。在单元格A2中设置条件格式:

范围A2:E50

自定义公式为:

= $ E $ 2:$ E $ 50为烷基; = 100

选择颜色

根据需要调整范围。