gpt4 book ai didi

google-apps-script - 应用脚本条件格式按名称应用于工作表

转载 作者:行者123 更新时间:2023-12-04 08:08:28 35 4
gpt4 key购买 nike

我一直在尝试制作一个 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');
}
}

最佳答案

代码问题:
不得不提的三件事:

  • rangerange对象,而不是字符串。在 if您正在比较 range 类型的对象的条件带有 string 类型的对象.您需要使用 getValue获取 range 的值对象,然后将其与字符串 L 进行比较.
  • 这段代码需要很长时间才能完成,因为您有大量的单元格要检查,而且您正在迭代地使用 GAS API 方法。如 Best Practices 中所述使用像 getValues 这样的批处理操作效率更高,
    getBackgroundssetBackgrounds .
  • 您可以进行的另一个改进是使用 getLastRow限制您的范围的行限制,因为您正在寻找非空值。没有理由在包含内容的最后一行之后检查空单元格。

  • 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 表格中创建条件格式:
    enter image description here
    并使用您的十六进制代码指定自定义颜色:
    enter image description here
    JavaScript 引用:
  • map
  • ternary operator
  • 关于google-apps-script - 应用脚本条件格式按名称应用于工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66100645/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com