功能未触发

时间:2018-12-02 19:07:02

标签: google-apps-script google-sheets custom-function

我正在尝试使用一个函数来获取单元格背景的十六进制代码,并将其与同一单元格中包含的文本连接起来。

即在sht1.cell(A1)中输入红色背景的“ Hello”,在sht2.cell(A1)中输入以下文本:“ [#FF0000] Hello”

我正在尝试:

function getHexValue(range) {
return SpreadsheetApp.getActiveSheet().getRange(range).getBackground();
 }

,但是它并不总是有效,特别是如果我共享文件。我尝试使用编辑,更改或打开事件来设置一些触发器,但ID一直没有更新  this是我试图做的。

有什么建议吗?

如果我输入:=gethexvalue("A5"),我将获得颜色代码,如果我将公式键入另一个单元格或另一张工作表,并且更新值或重新加载工作表,则它将无效。

1 个答案:

答案 0 :(得分:0)

在公式=gethexvalue("A5")中,“ A5”是文本,而不是动态范围。

阅读How to pass a range into a custom function in Google Spreadsheets?可获得完整的讨论和11个不同的答案。这本身可能是passing cell references to spreadsheet functions的副本。

=getHexValue(ADDRESS(ROW(A1), COLUMN(A1)))&A1是动态的。它将返回:

  

“#ff0000你好”

。如果要用大写十六进制,则将UPPER与getHexvalue一起使用。