我想做什么
在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颜色单元")
答案 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);
}
}