google-apps-script - Google 应用程序脚本 onChange 无法将触发器对象传递给变量
问题描述
这篇文章已关闭,但我无法在其他地方找到类似的问题。
我正在尝试制定一个脚本,该脚本将隐藏 onChange() 触发器中的行。当一个单元格变为“0”时,我希望该单元格所在的行被隐藏。我第一篇文章的评论告诉我,从 onChange 传递的对象不包含范围。是否有解决此问题的解决方法?
我的电子表格有一个用于后端的输入表和一个用于发送到客户端的前端的输出表。我需要一个 onChange 触发器,以便当数据进入前端时,它可以很好地格式化以通过电子邮件发送给客户端。最重要的是,我需要隐藏空 ('0) 行。
我是新手,刚刚学习,所以我写的内容不起作用,因为 onChange 对象不包含范围。谢谢你。
function onChange(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Client");
var cell = e.range;
var VALUE = cell.getValue();
if(VALUE == 0){
sheet.hideRow(cell);
}
}
我也试过:
function onChange(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Client");
var cell = e.getValue();
if(cell == 0){
sheet.hideRow(cell);
}
}
解决方案
onChange 触发器没有返回范围值。这是事件对象的样子。
{"authMode":"FULL","changeType":"INSERT_ROW","source":{},"triggerUid":"","user": {"email":","nickname":""}}
另外请记住 onChange 需要一个可安装的触发器。
推荐阅读
- android - 追溯停用 Play 管理中心中的 APK
- mysql - 如何让python从其他数据不完整的表中更新MYSQL?
- docker - 在 Docker 容器中访问 Kafka 代理
- jquery - 如何使用 JQuery AJAX 将模型传递给控制器?
- javascript - 如何使用 Vue 3 并添加插件 Boostrap-vue?
- laravel - Bulma 样式覆盖不起作用;使用 Laravel 7.25.0
- node.js - 是否可以使用 node.js passport.authenticate() 在 AWS api 网关中验证承载令牌?
- shopify - 按单位和重量销售 - Shopify
- react-native - react-native 中的 Flexbox 对齐问题
- python - python:将带有逗号和 $ 的数据框列转换为浮点数