为何Google Apps Script调用setBackgroundObject报错?方法不存在
问题解决:TypeError: table_range.setBackgroundObject is not a function
错误根源
你调用的setBackgroundObject()并不是Google Apps Script中Range对象的有效方法,Range类用于设置纯色背景的正确方法是setBackground(color)。
修正后的代码
function ColorsForTable(selected_scores, max_score, table_range) { var isMax = true; for(var i = 0; i < selected_scores.length; i++){ if(selected_scores[i][0] !== max_score){ isMax = false; break; } } if(isMax){ table_range.setBackground('#D4AF37'); // 替换为正确的setBackground方法 } }
额外提示
- 如果需要给多单元格区域设置不同背景色,可使用
setBackgrounds()(复数形式),该方法接受二维颜色数组作为参数。 - 若要设置渐变、图案填充这类复杂背景样式,可通过
SpreadsheetApp.newCellFormat()创建格式对象,再用table_range.setFormat()应用:var cellFormat = SpreadsheetApp.newCellFormat() .setBackgroundColor('#D4AF37') .build(); table_range.setFormat(cellFormat); - 注意
selected_scores[i][0]与max_score的类型一致性:如果max_score是数字,但selected_scores中的值是字符串(比如单元格为文本格式),全等运算符!==会导致判断失误,可改用非全等!=或统一类型后再比较。
内容的提问来源于stack exchange,提问作者Klaydonn Don
相关产品推荐
相关产品推荐

