如果我将文字传递给
,则课程setBackgroundRGB()
可以正常工作
setBackgroundRGB(255,255,255);
但是如果我把它传给一个变量,它就会失败:
_Color = "255, 255, 255";
setBackgroundRGB(_Color);
不起作用并返回错误
`Cannot find method setBackgroundRGB(string)`
我需要在这里做一些我不知道的转换吗?
答案 0 :(得分:2)
你需要传递一个数组。以下应该有效:
_Color = [255, 255, 255];
setBackgroundRGB(_Color);
注意 - 这基本上就是上面的帖子所做的 - split()将字符串转换为数组......
答案 1 :(得分:0)
您正在传递一个字符串。它需要整数。
试试这个:
_Color = 255,255,255
我怀疑这会奏效。您可能需要为每个
执行多个变量red = 255;
green = 255;
blue = 255;
答案 2 :(得分:0)
确实API没有方法setBackgroundRGB(string),提供了一个方法setBackgroundRGB(Integer, Integer, Integer),但是,一个选项可以实现你需要的,输入一个字符串是:
function setColorToRange() {
var colorRGB = '0, 255, 0';
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange('A1:B3');
range.setBackgroundRGB.apply(range, colorRGB.split(', '));
}
<强>更新强>
为了获得向量可以应用几个改进,扩展一些示例,我们整合了注释中指出的一些改进,产生以下结果:
function setColorToRange() {
var colorRGB = '0, 255, 0';
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange('A1:B3');
var arrColorRGB = getRGB(RGBString);
range.setBackgroundRGB.apply(range, arrColorRGB);
}
function getRGB(RGBString) {
// Returns a vector of integers
return RGBString.replace(/ /g, '').split(',').map(returnInt);
}
function returnInt(value) {
return parseInt(value, 10);
}
答案 3 :(得分:0)
使用范围和 RGBstring 作为参数的同一方法的另一种变体:
function test(){ // to define 2 parameters
var range = SpreadsheetApp.getActiveSheet().getRange('A1:B3');
setColorToRange(range,'0, 255, 0');
}
function setColorToRange(range,RGBString) {
var colorRGB = RGBString.replace(/ /g,'').split(',');// first remove spaces if present then split on comma only to get the array of integers
range.setBackgroundRGB.apply(range, colorRGB);
}