我正在使用一个自定义功能跟踪什么为单元格着色是。但是这个函数有一个问题不更新自身如果细胞颜色改变。
细胞颜色:
function GetCellColorCode(input)
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var cell = ss.getRange(input);
var result = cell.getBackground();
return result
}
接下来,我找到并添加一个重新计算所有公式的脚本以便他们自行更新。我添加了trigger这样这个公式就可以运行每隔一小时。
function refresh() {SpreadsheetApp.flush()}
但我的桌子上有17 pages and 数千的公式。结果,一切都更新了很多slower比我想要的。
我的问题是:我可以添加一些东西到定制配方这样它就像一个常规谷歌表格公式和变化立即地细胞内是否发生变化?
我相信你的目标如下。
修改要点:
通过这个流程,自定义函数GetCellColorCode
可以刷新。
Usage:
为了使用此方法,请执行以下流程。
1. 准备脚本。
请将以下脚本复制并粘贴到电子表格的脚本编辑器中并保存。
// I added this script.
function onChange(e) {
if (e.changeType == "FORMAT") {
var formula = "=GetCellColorCode";
var tempFormula = "=sample";
var sheet = e.source.getActiveSheet();
sheet.createTextFinder(`^\\${formula}`).matchFormulaText(true).useRegularExpression(true).replaceAllWith(tempFormula);
sheet.createTextFinder(`^\\${tempFormula}`).matchFormulaText(true).useRegularExpression(true).replaceAllWith(formula);
}
}
// This is your script.
function GetCellColorCode(input) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var cell = ss.getRange(input);
var result = cell.getBackground();
return result
}
- 在此示例中,自定义公式为
GetCellColorCode
在背景单元格更改的活动工作表中会刷新。
2.安装OnChange触发器onChange
功能。
请为以下函数安装OnChange触发器onChange
. Ref
3. 设置自定义公式。
请输入自定义公式=GetCellColorCode("A1")
在单元格“B1”中。在这种情况下,当单元格“A1”具有默认背景颜色时,#ffffff
显示在自定义函数的单元格“B1”中。
4.测试脚本。
请更改“A1”的背景颜色。至此,函数onChange
由 OnChange 触发器运行。并且,刷新自定义函数,然后,单元格“B1”的值被更改。
作为演示,当使用上述流程时,得到以下结果。
Note:
- 在此示例中,假设您的自定义函数的函数名称是
GetCellColorCode
。因此,当您修改它时,请同时修改上面的示例脚本。请小心这一点。
参考:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)