Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 要按名称在工作表上应用的应用程序脚本条件格式_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 要按名称在工作表上应用的应用程序脚本条件格式

Google apps script 要按名称在工作表上应用的应用程序脚本条件格式,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我一直在尝试制作一个谷歌应用程序脚本代码,如果单元格有像“L”这样的特定文本,它会突出显示单元格 我已经做了下面的代码,但它不工作,当我运行这个没有错误出现。我不知道是什么问题 请你看一下,这就是为什么它不起作用 function formatting() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Dec'); var range = sheet.getRange("C:AG"

我一直在尝试制作一个谷歌应用程序脚本代码,如果单元格有像“L”这样的特定文本,它会突出显示单元格

我已经做了下面的代码,但它不工作,当我运行这个没有错误出现。我不知道是什么问题

请你看一下,这就是为什么它不起作用

function formatting() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Dec');
  var range = sheet.getRange("C:AG");
  if (range == 'L') {
        ss.range.setBackgroundColor('#ea9999');
  } 
}
守则的问题: 有三件事值得一提:

  • range
    是一个对象,而不是字符串。在
    if
    条件下,您将比较
    range
    类型的对象与
    string
    类型的对象。您需要使用获取
    范围
    对象的值,然后将其与字符串
    L
    进行比较

  • 此代码将花费大量时间来完成,因为您需要检查的单元格范围很大,而且您正在迭代使用
    GAS
    API方法。如中所述,使用批处理操作更有效, 和

  • 您可以做的另一个改进是使用限制范围的行限制,因为您正在查找非空值。没有理由检查最后一行内容后的空单元格

谷歌应用程序脚本解决方案: Google Sheets解决方案: 另一个想法是在谷歌表单中创建条件格式:

并使用十六进制代码指定自定义颜色:

JavaScript引用:


还要注意的是,他们可能希望使用条件格式,而不是谷歌应用程序脚本:)感谢您的回答@Marios,并感谢您对其进行了非常简短的解释。非常感谢您的帮助。@Martíreal谢谢,我加上它是为了给您握手completion@Strenuous我添加了一种条件格式来做同样的事情。@Marios谢谢,但有理由使用脚本谢谢。
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)
 }