如何根据Google电子表格中的其他单元格设置单元格的背景颜色?

时间:2012-08-29 12:55:52

标签: google-apps-script google-sheets background-color

我想根据另一个单元格的背景颜色设置单元格的背景颜色。

我有一张带有天数和相应工作日作为文字的工作表。在条件格式的帮助下,我能够将所有周末日的背景颜色设置为灰色。但是现在我想将相应日期的背景颜色设置为灰色。

例如,我给A行中的范围指定了一个名称,比如天,B行中的范围就像工作日一样:

row A: day1, day2, day3, day4, day5, day6, day7
row B: Mon, Tue, Wed, Thu, Fri, Sat, Sun

Sat和Sun的细胞背景为灰色。

我尝试创建一个脚本,指示行B中单元格的背景颜色是否为灰色,并将行A中的相同单元格设置为背景颜色灰色。我知道我必须使用函数getBackgroundColorsetBackgroundColor,但我不知道如何从一个单元转到另一个单元。以及如何在另一行中设置相同的单元格?

1 个答案:

答案 0 :(得分:0)

我的范围总是从D2开始,这就是为什么我在某些点上使用硬编码的数字。我宁愿比较一天而不是颜色。所以这是我的解决方案。

function colorWeekends() {

       var getlastcolumn = SpreadsheetApp.getActiveSpreadsheet().getLastColumn();  

      for (var i = 4; i <= getlastcolumn; ++i) {
        var activecell = SpreadsheetApp.getActiveSheet().getRange(2, i);
        var text =activecell.getValue();

        if (text == "Sun" || text == "Sat") {
          var column = activecell.getColumnIndex();
          var row = activecell.getRowIndex();
          var lastrow = SpreadsheetApp.getActiveSheet().getLastRow(); 
          var range = SpreadsheetApp.getActiveSheet().getRange(1, column, lastrow);
          SpreadsheetApp.getActive().setActiveRange(range).setBackgroundColor("#efefef");
        }

      }

    }