如果特定选项卡上的值等于某个值,则对该选项卡进行着色

问题描述 投票:0回答:1

我自己缺乏经验的受害者——我需要一个功能:

  1. 仅在我指定的工作表上运行
  2. 只要打开工作表就运行
  3. 检查单元格的值并根据单元格的值使特定选项卡的颜色变暗。

我从昨天开始就一直在阅读帖子,并将类似问题的内容用胶带粘在一起:

function onOpen(e) {
  const ss = SpreadsheetApp.getActive();
  ss.getSheets().forEach(sh => {
    if(sh.getRange("E2").isBlank()) {
      sh.setTabColor("#00ff00");//green
    } else {
      sh.setTabColor("#ff8000");//orange
    }
  });
}

它可以工作,但它肯定会做一些对于我的目的来说不需要的事情,我只是缺乏知道如何正确修改它的某些部分的经验。

  1. 我可以更改
    isBlank
    来搜索特定短语吗? (
    isBlank
    有效,但我觉得更好的实践解决方案是让它关闭一个值)
  2. 我可以将其设置为仅在我指定的一张纸上运行吗(不知道如何修改
    forEach
    参数)

很抱歉提出这个问题,并非常感谢任何可以提供帮助的人——我确信这是一组简单的论点,但我距离程序员最远了! \o/

google-sheets
1个回答
0
投票

使用
onOpen()
检查工作表上的特定单元格并为其添加阴影

可以做你想做的事:

  • 仅在我指定的工作表上运行
  • 只要打开工作表就运行
  • 检查单元格的值并根据单元格的值使特定选项卡的颜色变暗

这是代码:

function onOpen() {
  var ss = SpreadsheetApp.getActive();
  ss.getSheets().forEach(sh => {
    var sn = sh.getSheetName();
    var vl = sh.getRange("E2").getValue();
    if (sn == "Sheet1") {
      if (vl == "Test") {
        sh.getRange("E2").setBackground("green")
      } else {
        sh.getRange("E2").setBackground("orange")
      }
    }
  });
}

打开工作表时,脚本会检查

Sheet 1
E2
单元格的值是否为
Test
,如果为 true,则将背景设置为绿色。如果没有,它会将其设置为橙色。

这是另一种编写代码的方法:

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheetByName("Sheet1");
  var rg = sh.getRange("E2")
  var vl = rg.getValue();
  vl == "Test" ? rg.setBackground("Green") : rg.setBackground("Orange")
}

输出

如果文本匹配:

Match

如果文本不匹配:

dmatch


参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.