簡體   English   中英

基於不同工作表中的值的單元格顏色范圍

[英]Color range of cells based on values in different sheet

我在Google表格中有13個工作表,其中12個工作表中的行名和列標題中的日期。

我希望根據"HolidayList"表中列出的假期將整個列設置為灰色格式。 我寫了一些代碼,這些代碼在正確的單元地址上不起作用:

function formatForHoliday() {
  Logger.clear();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var holidays = ss.getRange("HolidayList!A2:A80").getValues();
  // Logger.log(holidays);

  // For each sheet
  for ( var s = 0; s <= 12; s++ ) {
    var sheet = ss.getSheets()[s];
    // Logger.log(sheet);
    var values = sheet.getRange(sheet.getName() + "!F3:NF3").getValues();
    // var newValues = [];
    // Logger.log(values);

    // In each sheet, for each value
    for (i in values[0]) {
      for (j in holidays) {
        var val = values[0][i];
        var hol = holidays[j][0];
        Logger.log(val.valueOf());
        Logger.log(hol.valueOf());

        if (val.valueOf() == hol.valueOf()) {
          // newValues.push(values[0][i]);
          var cellsRange = sheet.getRange(4, i + 6, 52, 1);
          var address = cellsRange.getA1Notation();
          cellsRange.setBackground('grey');
        }
      }
    }
  }
}

您的代碼似乎很好,我現在唯一能看到的問題是,您正在獲取set [multiple]單元格的范圍,但將背景設置為一個。

然后將setBackground()應用於字符串。 getA1Notation()返回字符串,而不是范圍。 https://developers.google.com/apps-script/reference/spreadsheet/range#geta1注釋

setBackground()只能應用於范圍。

https://developers.google.com/apps-script/reference/spreadsheet/range#setbackgroundcolor

var cellsRange = sheet.getRange(4, i + 6, 52, 1);
var address = cellsRange.getA1Notation();
cellsRange.setBackground('grey');

而是應將所有設置其范圍/地址已獲取的單元格設置為。 https://developers.google.com/apps-script/reference/spreadsheet/range#setbackgroundscolor

我認為您應該做的是:

  1. 您正在執行第一步,即正確獲取范圍。

var cellsRange = sheet.getRange(4, i + 6, 52, 1);

  1. 現在,您應該制作與(4,i + 6,52,1 相同維的數組,即我認為[48X1]

  2. 用“灰色”填充所有元素

  3. 使用setBackgrounds()方法。 https://developers.google.com/apps-script/reference/spreadsheet/range#setbackgroundscolor

讓我知道這是否可以解決您的問題。 或者,如果您還有其他疑問/建議。

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM