如何用Google Apps Script将符合条件的表格行标红
修改Google Apps Script实现符合条件行标红功能
以下是调整后的脚本,可实现将F列至K列所有单元格为空值或值为“KO”的行标红:
function highlightRows() { var sheet = SpreadsheetApp.getActiveSheet(); var rows = sheet.getDataRange(); var numRows = rows.getNumRows(); var values = rows.getValues(); // 定义红色背景样式(可自行修改十六进制颜色码调整色调) var redBackground = SpreadsheetApp.newCellFormat().setBackgroundColor("#ffcccc").build(); // 遍历所有行 for (var i = 0; i < numRows; i++) { var row = values[i]; var shouldHighlight = true; // 检查F列(数组索引5)到K列(数组索引10)的每个单元格 for (var col = 5; col <= 10; col++) { var cellValue = row[col]; // 只要有一个单元格不符合空或"KO",就取消标红标记 if (cellValue !== "" && cellValue !== "KO") { shouldHighlight = false; break; } } // 符合条件则设置整行红色背景 if (shouldHighlight) { sheet.getRange(i + 1, 1, 1, sheet.getLastColumn()).setCellFormat(redBackground); } } }
关键改动说明
- 替换核心逻辑:删除原脚本的
deleteRow代码,改为设置单元格背景色的样式操作 - 优化条件判断:用内层循环遍历F-K列,替代原脚本嵌套的多个
if,逻辑更清晰且易于维护 - 统一样式定义:通过
newCellFormat创建红色背景样式,可直接修改颜色码调整标红的深浅 - 整行标红:使用
getRange(i+1, 1, 1, sheet.getLastColumn())选中整行,确保整行都被标红
使用方式
打开目标Google表格,点击「扩展程序」→「Apps脚本」,将原代码替换为上述脚本,保存后点击运行即可。
内容的提问来源于stack exchange,提问作者user19870352
相关产品推荐
相关产品推荐

