使用Google表格中的范围参数智能填写自定义函数

时间:2015-02-05 15:54:24

标签: google-apps-script google-sheets

我有一系列来自另一个系统的彩色编码(背景颜色)的单元格(将其数据导出为ex​​cel格式,我已将其导入Google Spreadsheets / Sheets),我需要根据背景进行简单的计算每个细胞的颜色。

不幸的是,我在Sheets中找到确定单元格背景颜色的唯一方法是使用一个我没有经验的脚本。

我一直在使用以下脚本:

function getBGColor(range) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  return sheet.getRange(range).getBackgroundColor();
}

我的问题是必须在引号中输入范围。我的理解是,如果输入的范围没有引号,则单元格的值将传递给函数。正确的吗?

=getBGColor("E2")

表单不会智能地填充引号中的值。当我填写时,公式不会增加,因为我需要它(我需要数百个单元格才能获得颜色)。

我得到了

=getBGColor("E2")
=getBGColor("E2")

而不是

=getBGColor("E3")
=getBGColor("E4")

我觉得我必须使用错误的术语进行搜索,因为我找不到任何解决方法。我是否需要创建一个复制智能填充功能的自定义功能,还是有其他一些我在某处错过的解决方案?我是否错误地攻击了这个问题?

我尝试制作可以在新数据可用时重复使用的工作表,并且可以动态操作(大量单元格引用)以演示数据更改的效果,但看起来像Sheets可能不是最好的工具呢? Excel运作良好,但我的上级正在推动将所有这些数据移到表格中。

谢谢。

1 个答案:

答案 0 :(得分:2)

刚刚找到了似乎有用的东西。而

CELL("color",reference)

不起作用,它确实引导我到地址info_type。我能够使用以下解决方法:

=getBGColor(CELL("address",E2))

智能地填写。

如果有更好的方法,请告诉我们!