【发布时间】:2020-09-06 12:21:35
【问题描述】:
我正在尝试根据进度自动更改单元格的字体颜色。所以基本上我在想的是,如果进步是 20%,颜色是灰色,如果是 45%,颜色会发生变化。
这里是函数:
function onEdit(e) {
var range = e.range;
var spreadSheet = e.source;
var sheetName = spreadSheet.getActiveSheet().getName();
var column = range.getColumn();
var row = range.getRow();
var inputValue = e.value;
Logger.log(e.oldValue);
Logger.log(inputValue);
if(sheetName == 'Scoreboard' && column == 2 && row == 2)
{
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Scoreboard').getRange('A2').setValue([inputValue]);
if(inputValue < 10){
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Scoreboard').getRange('M6').setFontColor("black").setFontWeight("initial");
} else if( inputValue >= 10 && inputValue < 20 ){
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Scoreboard').getRange('M6').setFontColor("dimgray").setFontWeight("initial");
} else if( inputValue >= 20 && inputValue < 40 ){
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Scoreboard').getRange('M6').setFontColor("silver").setFontWeight("initial");
} else if( inputValue >= 40 && inputValue < 60 ){
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Scoreboard').getRange('M6').setFontColor("palegoldenrod").setFontWeight("initial");
} else if( inputValue >= 60 && inputValue < 80 ){
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Scoreboard').getRange('M6').setFontColor("khaki").setFontWeight("initial");
} else if( inputValue >= 80 && inputValue < 100 ){
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Scoreboard').getRange('M6').setFontColor("yellow").setFontWeight("initial");
} else if( inputValue == 100 ){
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Scoreboard').getRange('M6').setFontColor("yellow").setFontWeight("bold");
}
}
}
首先我尝试手动更改单元格(2,2),所以当我手动更改进度时,M6中的字体颜色会自动更改,
我遇到的问题是,在单元格 (2,2) 中,我需要输入这个计算每个项目平均进度的公式:
=AVERAGE('2S VPs Plans'!H114,'2S VPs Plans'!H92,'2S VPs Plans'!H70,'2S VPs Plans'!H48,'2S VPs Plans'!H26)
当我返回“2S VPs Plans”选项卡并不断更改 4 个输入以更改平均值时,我什么也没得到,颜色也没有改变。
我相信当我在其中添加公式时,该函数会将单元格 (2,2) 读取为空。我不确定,但如果是这样,请如果你能帮助实现它。提前谢谢!
【问题讨论】:
-
您是否有理由通过代码而不是条件格式来尝试此操作?
-
编辑在 2S VP 计划中!H..
e仅指该编辑,而不是其他任何地方的公式 -
@chillin 据我所知,条件格式中的 if 语句必须位于将更改的同一单元格中,这对我来说不是这种情况......
-
@AimenQaissouni “据我所知,条件格式中的 if 语句......”这是错误的。我建议您发布有关如何使用 Google 表格内置条件格式的问题。
标签: javascript google-apps-script google-sheets triggers google-sheets-formula