我一直在寻找一种基于另一种细胞颜色来更改细胞值的方法(例如,如果细胞颜色为红色,则为“文本”)?
有办法做到这一点吗?
我知道有一种方法可以根据单元格值更改单元格颜色,但我想要相反的方式,
谁有想法?无论是脚本还是公式答案 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
**/