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

时间:2017-01-10 05:33:09

标签: google-apps-script google-sheets

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

有办法做到这一点吗?

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

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

1 个答案:

答案 0 :(得分:3)

Google appscript中有类似的内容,不确定电子表格中是否还有直接公式,但现在是:

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

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

<强>输出

  

#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
**/