google-apps-script - 如何使在 Google Apps 脚本中创建的自定义函数对 Google 表格中单元格背景的更改作出反应?
问题描述
我有这个函数,它返回指向单元格背景颜色的十六进制代码。到目前为止还可以,但我需要它对指向单元格的背景颜色的变化做出反应。实际上,每次单元格的背景颜色发生变化时,我都必须再次调用该函数,以便它注意到背景颜色已经改变。有什么方法可以让这个函数对指向单元格背景的变化做出反应?
function color(input) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var activeRange = SpreadsheetApp.getActiveRange();
var formula = activeRange.getFormula();
var address = formula.substr(7,2);
var cell = ss.getRange(address);
var result = cell.getBackground();
return result;
}
解决方案
onEdit() 不是由背景更改触发的,但事实证明 onChange 是并且 changeType 是 FORMAT
这是事件对象的副本:
{"authMode":"FULL","changeType":"FORMAT","source":{},"triggerUid":"","user":{"email":"","nickname":""}}
但是,如果您在此处找到自定义函数的意思,我认为没有办法通过自定义函数来利用这一点
尝试这个:
function onMyChange(e) {
if(e.changeType == 'FORMAT') {
SpreadsheetApp.getActive().toast(SpreadsheetApp.getActiveRange().getA1Notation());
}
}
推荐阅读
- logging - 使用 App 脚本访问完整的谷歌日志
- r - 如何在 r 的循环中调用不同的数据帧并向它们添加不同的计算结果?
- visual-studio - 允许 Microsoft 符号服务器通过防火墙
- c++ - C++:抽象类的继承和构造
- javascript - jQuery 嵌套窗口加载事件
- oracle - Oracle 正则表达式,如果字符串以数字开头,则在开头查找长度为 3 的数字。否则,在末尾找到长度为 3 位的数字
- matlab - 如何在 MATLAB 中识别多个相交的多边形?
- .net-core - 如何在 .NET Core 中配置基于角色的身份验证?
- android - 获取从 ACTION_QS_TILE_PREFERENCES 长按的 Quick Tile
- python - Django Crispy 表单提交不适用于 TabHolder,但适用于字段集