【问题标题】:How to set background colour of a cell based on another cell in Google Spreadsheet?如何根据谷歌电子表格中的另一个单元格设置单元格的背景颜色?
【发布时间】:2012-08-24 02:18:17
【问题描述】:

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

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

例如,我将 A 行中的范围命名为 days,将 B 行中的范围命名为 weekdays:

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

Sat 和 Sun 单元格的背景为灰色。

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

【问题讨论】:

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


    【解决方案1】:

    我的范围总是从 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");
            }
    
          }
    
        }
    

    【讨论】:

      猜你喜欢
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多