如何在 O 列中搜索另一个 sheet 中列出的值并更改行颜色?

How do I search Column O for a value listed on another sheet and change row color?

我有一个电子表格,我想在其中逐行搜索并将 O 列中的值与“菜单”页面上的值进行比较。如果O列的值小于Menu的值,则整行变为红色

这是我目前所拥有的,但它不起作用。

    function checkDate(sheet){
  menu = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Menu");
  var rows = sheet.getDataRange().getValues();
  for(var i=0; i < rows.length; i++){
    if(rows[i][14] > menu.getRange("B5").getValue()){
      var changeRange = sheet.getRange(1,i,1,sheet.getLastColumn());
      changeRange.setBackgroundRGB(255, 0, 0);
    }
  }
}

这似乎有效...

 function checkDate(sheetName){
      menu = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("menu");
      sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
      var rows = sheet.getDataRange().getValues();
      console.log(sheet.getName());
      for(var i=0; i < rows.length; i++){
       if(rows[i][14] > menu.getRange("B5").getValue()){
         sheet.getRange(i+1,1,1,sheet.getLastColumn()).setBackgroundRGB(255, 0, 0);
       }
      }
    }

如果第 15 列是日期,则按此方式尝试

function checkDate(sheetName) {
  const ss = SpreadsheetApp.getUi();
  const menu = ss.getSheetByName("menu");
  const b5 = new Date(menu.getRange("B5").getValue()).valueOf();
  const sh = ss.getSheetByName(sheetName);
  const sr = 2;//data start row
  var rows = sh.getRange(sr, 14, sh.getLastRow() - sr + 1).getValues();
  rows.forEach((r,i) => {
    if(new Date(r[14]).valueOf() > b5) {
      sh.getRange(i + 1, 1, 1, sh.getLastColumn()).setBackground("#ff0000");
    }
  });
}