首页 > 解决方案 > 功能未触发

问题描述

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

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

我正在尝试这个:

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

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

有什么建议吗?

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

标签: google-apps-scriptgoogle-sheetscustom-function

解决方案


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

阅读如何将范围传递给 Google 电子表格中的自定义函数?完整的讨论和 11 个不同的答案。这本身就是将单元格引用传递给电子表格函数的可能副本。

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

“#ff0000你好”

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


推荐阅读