setBackgroundRGB不接受函数争论

时间:2015-12-07 11:14:08

标签: javascript google-apps-script google-sheets

我想做什么

  

在google工作表中创建一个函数,允许我选择一个单元格并输入" = rgbcolour",选择3个包含0到255之间数字的单独单元格作为rgb值,以便我的单元格输入" = rgbcolour"将按照3个单独的rgb输入

转换为适当的颜色

我的研究

  

setBackGroundRGB not accepting string   这个人遇到同样的错误,把他想要的结果,他使用的方法和他的问题的解决方案似乎都不适用

     

这个setBackground() or setFontColor not working in GAS帮助我试图找出如何将函数传入的单元格传递到setBackgroundRGB方法中。我最终使用var cell = sheet.getActiveCell();虽然我可能在这项努力中没有成功,这可能导致我的问题

     

我一直在使用https://developers.google.com/apps-script/guides/sheets/functions#using_a_custom_function作为指南

这是我的代码

function RGBCOLOUR(r,g,b)
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getActiveCell();

  return cell.setBackgroundRGB(r,g,b);
}

这是我的错误

  

找不到方法setBackgroundRGB((class),(class),(class))。 (线   7,文件" RGB颜色单元")

2 个答案:

答案 0 :(得分:2)

这是不可能的。根据文档,自定义函数只能返回值。不操纵格式化。

https://developers.google.com/apps-script/guides/sheets/functions#return_values

如果我错了,请有人纠正我,这样我才能学到新东西。

答案 1 :(得分:0)

好的,框架中不支持我想要做的事情,这是我用的代码

function onEdit()
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range = sheet.getRange("A3:R3");
  var colours = sheet.getRange("A4:R4");

  for (var x=1; x < range.getNumColumns(); x=x+3)
  {
    var cell = colours.getCell(1,x);
    var r = range.getCell(1,x).getValue();
    var g = range.getCell(1,x+1).getValue();
    var b = range.getCell(1,x+2).getValue();

    cell.setBackgroundRGB(r,g,b);
  }
}