【发布时间】:2018-08-03 23:56:34
【问题描述】:
我是谷歌表格的新手,我喜欢为特定列设置条件格式。
从第 8 行 D 列开始 我想根据单元格上的设置背景颜色 如果单元格内容如“通过”,则背景颜色应为绿色 (183,225,205) 如果单元格内容如“失败”,则背景颜色应为红色 (213,139,139) 如果单元格内容如“待定”,则背景颜色应为黄色 (252,232,178)
所以在编辑单元格时我想检查单元格的值
function onEdit(e){
var actualSheetName =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName()
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
var allValuesOnColumA = ss.getRange("A1:A").getValues()
var lastRow = allValuesOnColumA.filter(String).length + 1
var range = ss.getRange(8, lastRow)
conditionalFormatting(8, 4, (lastRow +1) -8, 1, actualSheetName)
}
我启动了一个条件格式化函数,但我无法让它工作。
function conditionalFormatting(rowN, colN, optRows, optCols, spreadsheetName)
{
var mySpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
var mySheet = mySpreadsheet.getSheetByName(spreadsheetName)
var range1Values = mySheet.getRange(rowN,colN, optRows, optCols).getValues()
//debugger
for (var row in range1Values)
{
for (var col in range1Values[row])
{
for(var i=0, iLen=range1Values.length; i<iLen; i++)
{
if(range1Values[row][col] == 'pass')
{
//debugger
Logger.log('Local Row ' + locRow + ' Local Col ' + locCol)
var pendingCell=mySheet.getRange(locRow, locCol)
pendingCell.setBackground("green")
}
else if(range1Values[row][col] == 'fail')
{
// Logger.log('fail in')
//mySheet.getRange(range1Values.offset(row, col, 1, 1).getA1Notation()).setBackgroundColor(213,139,139) //red
//Logger.log('fail Out')
}
else if(range1Values[row][col] == 'pending')
{
//Logger.log('Pending in')
//mySheet.getRange(range1Values.offset(row, col, 1, 1).getA1Notation()).setBackgroundColor(252,232,178) //Yellow
//Logger.log('Pending Out')
}
}
}
}
}
编辑:
所需的结果应如下所示:
【问题讨论】:
-
是否有特定原因需要脚本?您可以突出显示所需的单元格,右键单击并选择条件格式。然后,如果
text is exactlypass,您将选择格式单元格。 -
您好 Torey,我有一个工作簿,我们每周添加 2-3 张新工作表。我一直在使用内置的条件格式;但是我想自动化这个过程。我认为使用 onEdit 事件会对我有所帮助。 Dan 帮助了我大部分需要的东西,我只需要检查单元格上输入的值是否。例如,用户可以输入:'Pass'、PASS'、'Passed' PASSED'、'passed'等。在 google sheet 上检查这个最简单的方法是什么?提前致谢。Edil
-
丹的剧本看起来很棒。此外,您可能会强制为用户提供带有下拉列表的某些条目,而不是尝试猜测他们可能添加的每个组合。只需突出显示输入单元格,右键单击,选择
data validation,将条件设置为list of items并列出所有以逗号分隔的项目。
标签: google-sheets formatting conditional-statements