如果我将其传递为文字,则该类setBackgroundRGB()将起作用

setBackgroundRGB(255,255,255);


但是,如果我给它传递一个变量,它将失败:

_Color = "255, 255, 255";

setBackgroundRGB(_Color);


不起作用并返回错误

`Cannot find method setBackgroundRGB(string)`


我需要在这里进行一些我不知道的转换吗?

最佳答案

实际上,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);
}

10-06 11:40