我已经制作了这张公开表来解释交替行的问题 https://docs.google.com/spreadsheets/d/18PoyJLOgyPaQXl2PGtAzlTcY3c53UDzzGLFjWYQfVlU/edit#gid=0
奇怪的是,我现在可以使用 setBackground(null)重置单元格,但不能强制使用条件公式预格式化颜色填充任何单元格!我用这个公式
=MOD(ROW(),2)=0
以下是我的代码示例,用于在满足条件的情况下强制将有条件预格式化的单元格变为红色。如果没有,我想清除强制颜色,就像我手动点击单元格一样,转到
填充颜色>>重置
我试过了setBackground('None')
,但它没有用。使用 clearFormat()的问题在于它删除了我在所有工作表上执行的条件格式规则
=MOD(ROW(),2)=0
灰色。本质上,我需要翻译我只是手动重置填充颜色,而不是删除格式,这反过来也删除了对齐。如果此方法不存在,那么如何创建具有样式颜色的格式规则来交替行,就像最初的情况一样。您可以在注释行中找到我已经尝试过这个。
function onEdit(e)
{
var range = e.range;
var sheet = SpreadsheetApp.getActiveSheet();
var sName = sheet.getSheetName();
var row = range.getRow();
var col = range.getColumn();
if(sName == 'AABO')
{
var rowValues = sheet.getRange(row + ':' + row).getValues();
if( (rowValues[0][TASK_TYPE_COL_NUM - 1] == 'Configuration') && (rowValues[0][TOT_RW_COL_NUM - 1] > 2)
|| (rowValues[0][TASK_TYPE_COL_NUM - 1] == 'Integration') && (rowValues[0][TOT_RW_COL_NUM - 1] > 3) )
{
sheet.getRange(row, TOT_RW_COL_NUM).setBackground('red');
}
else
{
sheet.getRange(row, TOT_RW_COL_NUM).setBackground('None');
// sheet.getRange(row, TOT_RW_COL_NUM).clearFormat().setHorizontalAlignment("center").setVerticalAlignment("middle").setFormula("=MOD(ROW(),2)=0");
}
}
SpreadsheetApp.flush();
}
答案 0 :(得分:6)
我注意到您在setBackground()
中放置的值是'None'
,这是不正确的。您可以使用CSS颜色(如'#ffffff'
或'white'
)设置范围内所有单元格的背景颜色。如果要重置范围颜色,可以使用null
。
range.setBackground(null);
以下是使用null
重置背景颜色的情况:
How to set background color for a row based on current date in Google Docs Spreadsheet?