根据另一个单元格中的 RGB 代码绘制一个单元格的背景颜色

问题描述 投票:0回答:1

有人可以提供一个公式的脚本,该脚本允许使用另一个单元格范围的 RGB 代码来绘制一系列单元格的背景吗?

例如:如果在 D2 中插入

=setbackgroundRGB(L2)
,则 D2 的背景从 L2 中的 RGB 代码获取颜色,如果在 D3 中插入
=setbackgroundRGB(L3)
,则 D3 的背景将使用 L3 中的 RGB 代码的颜色进行绘制。请注意,“setbackgroundRGB”是用 Google App 脚本编写的自定义函数的虚构名称。

screenshot

我不熟悉Google App Script,但我希望有人可以提供脚本来获取上述公式。

google-sheets google-sheets-formula
1个回答
0
投票

这可以通过添加具有此自定义函数的脚本来完成: 在这种情况下,“A2:A202”范围内的单元格(从第 2 行开始的 200 行)将使用单元格 B、C 和 D 中的 RGB 代码进行着色。我喜欢这个公式,因为您可以根据您的需要在输入和输出范围内移动需求,这就是我一直在寻找的。我希望这对其他人有帮助!

function setRGBBackgroundColor() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // Loop over the first 200 rows, starting from row 1
  for (var i = 2; i <= 200; i++) {
    var red = parseInt(sheet.getRange("B" + i).getValue());
    var green = parseInt(sheet.getRange("C" + i).getValue());
    var blue = parseInt(sheet.getRange("D" + i).getValue());
    
    // Check if RGB values are valid (numbers between 0 and 255)
    if (isValidRGB(red) && isValidRGB(green) && isValidRGB(blue)) {
      // Set the background color of column A for the corresponding row
      sheet.getRange("A" + i).setBackgroundRGB(red, green, blue);
    } else {
      // Clear the background if values are invalid or empty
      sheet.getRange("A" + i).setBackground(null);
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.