我一直在尝试制作一个 Google App Script 代码,如果它有像“L”这样的特定文本,它会突出显示单元格。
我做了一个下面的代码,但它不工作,当我运行这个没有错误出现。我不知道是什么问题。
你能看看它吗,请问为什么它不起作用。
function formatting() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Dec');
var range = sheet.getRange("C:AG");
if (range == 'L') {
ss.range.setBackgroundColor('#ea9999');
}
}
最佳答案
代码问题:
不得不提的三件事:
range
是 range对象,而不是字符串。在 if
您正在比较 range
类型的对象的条件带有 string
类型的对象.您需要使用 getValue获取 range
的值对象,然后将其与字符串 L
进行比较.GAS
API 方法。如 Best Practices 中所述使用像 getValues 这样的批处理操作效率更高,getBackgrounds和 setBackgrounds .
Google Apps 脚本解决方案:
function formatting() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Dec');
const range = sheet.getRange("C1:AG"+sheet.getLastRow());
const values = range.getValues();
const bcolors = range.getBackgrounds();
const new_bcolors = values.map((r,i)=>r.map((c,j)=>c=='L'?'#ea9999':bcolors[i][j]))
range.setBackgrounds(new_bcolors)
}
谷歌表格解决方案:另一个想法是在 Google 表格中创建条件格式:
并使用您的十六进制代码指定自定义颜色:
JavaScript 引用:
关于google-apps-script - 应用脚本条件格式按名称应用于工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66100645/