根据谷歌电子表格中的单元格颜色更改单元格值

use*_*740 1 google-sheets google-apps-script

我一直在寻找一种基于另一种单元格颜色更改单元格值(例如,如果单元格颜色为红色则为“文本”)的方法?

有没有办法做到这一点?

我知道有一种方法可以根据单元格值更改单元格颜色,但我想要相反的方式,

有人有想法吗?无论是脚本还是公式

Shy*_*gra 5

Google appscript中有类似的东西,不确定电子表格中是否也有任何直接公式可用,但这里是:

我将Sheet1 的A1单元格着色为红色,即 #ff0000,然后使用以下代码获取颜色:

function test()
{
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  var color = sheet.getRange(1, 1).getBackground();
  Logger.log(color);
}
Run Code Online (Sandbox Code Playgroud)

输出

#ff0000

所以,你只需要检查if(color == "#ff0000")(或你想要的任何颜色的代码)然后设置值。

编辑

这是将满足您的要求的代码。我还添加了评论,以便您可以进一步开发它。

function myFunction() {
  var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");

  var data1 = sheet1.getDataRange().getValues();  //2D array of sheet1 cell values
  var bg;

  for(var i=1; i<data1.length; i++)
  {
    bg = sheet1.getRange(i+1, 2).getBackground();
    if(bg == "#ff0000")  //Add more colors in else if and else if you have 5-6 different colors, this one is for red
    {
      sheet2.getRange(i+1, 3).setValue("For Verification");  //Set value in corresponding row of sheet2
    }    
  }
}


/**
* For to-be filled records in future, you can 
* set a trigger of onEdit if you are manually 
* filling sheet 1
**/
Run Code Online (Sandbox Code Playgroud)