javascript - Apps 脚本仅在特定选项卡/工作表上运行 onEdit
问题描述
我敢肯定这个问题有一个非常简单的答案;
我有一个可以完美运行的函数,但是它仅在函数名称为“onEdit”时才有效,这不是我想要的,因为我想为不同的选项卡创建类似的函数,因此第一行检查工作表名称,有人可以指出我的方式错误:-) 谢谢。
function onEdit(e) {
if (e.range.getSheet().getName() != "PrintNoteLines") {
return}
var sh = e.source.getActiveSheet()
if (sh.getName().indexOf('PrintNoteLines') > -1 && e.range.getA1Notation() == 'B1' && e.value) {
sh.getRange('A25:A183')
.setDataValidation(SpreadsheetApp.newDataValidation()
.requireValueInRange(e.source.getRangeByName(e.value), true)
.setAllowInvalid(false)
.build()); }
}
解决方案
onEdit
是定义函数绑定到简单触发器的关键字onEdit
如果要重命名函数,但要保留功能,则可以使用可安装
onEdit
的触发器请参阅此处如何将其绑定到您的重命名函数
请注意,运行多个函数
onEdit
可能会导致冲突,而且大多数情况下没有必要onEdit
如有必要,您可以从 triggerred函数内部调用其他函数
样本:
function onEdit(e) {
if (e.range.getSheet().getName() == "A") {
function1();
}
else if (e.range.getSheet().getName() == "B") {
function2();
}
else {
function3();
}
}
function function1(){
Logger.log("The sheet name is A");
}
function function2(){
Logger.log("The sheet name is B");
}
function function3(){
Logger.log("The sheet name is different");
}
推荐阅读
- python-3.x - TypeError: super() 参数 1 必须是类型,而不是 Python3.7 中的 str
- python - 使用 Python TypeError 解析 JSON:列表索引必须是整数或切片,而不是 str
- influxdb - UNION 语句的等价物是什么
- parallel-processing - 键的替代哈希表相等性测试
- android - 如何在 Firebase-DB 中查询“WHERE”子句之类的数据?
- c++ - 一个类可以有多少个构造函数?
- java - 公开我的服务帐户凭据会在 Firebase 中特别公开什么?
- web-crawler - 如何将args路径到 crawler4j 中的 shouldVisit() 方法?
- javascript - 从十进制到二进制
- python - 为什么我收到“ UnboundLocalError: local variable 'x' referenced before assignment ”