google-sheets - 我可以在 Google 表格中简化我的脚本吗?
问题描述
我已经使用脚本构建了一个 Google 表格,以便在编辑时自动为表格上的某些事件添加时间戳。
其中两个计时器仅用于对两个特定单元格的第一次编辑进行计时:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "SUBARU" ) {
var r = s.getActiveCell();
if( r.getColumn() == 3 ) {
var nextCell = r.offset(0, 19);
if( nextCell.getValue() === '' )
nextCell.setValue(new Date());
}
}
}
两个额外的计时器时间任何实例两个其他单元格被编辑:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "SUBARU" ) {
var r = s.getActiveCell();
if( r.getColumn() == 9 ) {
var nextCell = r.offset(0, 15);
nextCell.setValue(new Date());
}
}
}
当三个特定条目发生在一个特定单元格中时,其他三个计时器会计时:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "SUBARU" ) {
var r = s.getActiveCell();
if( r.getColumn() == 5 ) {
var nextCell = r.offset(0, 20);
if( r.getValue() === "3 - Menu Ready")
nextCell.setValue(new Date()).setNumberFormat('dd-MM-yyyy HH:mm:ss');
}
}
}
我的问题是每张纸有 7 个脚本,使用这些脚本有 4 张纸(所以总共运行了 28 个脚本)。我的 Google 报价是同时运行 30 个脚本。谁能想到我可以简化这些脚本以更快地运行或组合任何脚本以便在任何给定时间运行更少的方法?
任何帮助将不胜感激!!!
解决方案
我对此的建议是将所有逻辑分组到一个“onEdit”函数中。
这是我处理它的代码方法/建议:
if(s.getName() == "SUBARU") {
//put the logic to handle sheet SUBARU
} else if(s.getName() == "ABC") {
//put the logic to handle sheet ABC
} else if(s.getName() == "DEF") {
//put the logic to handle sheet DEF
}
推荐阅读
- javascript - 尝试使用 axios 进行 VueJS API 调用以在名为 prijzen 的组件中获取 json
- html - 函数值如何显示在 HTML 标记中,并带有 addEventListerner click 的返回值?
- ssl - 使用 pip 安装证书验证失败,主要问题,(_ssl.c:1108)
- javascript - useMemo on .map 语句中使用的函数
- python - 对 DASK 中的列中的每个值运行 mysql 查询
- python - 我希望我的角色只要按住按钮就可以做某事,然后在松开按钮后恢复正常
- reactjs - 具有给定令牌的 Axios 拦截器,React
- javascript - vanilla javascript使用链接的点击但不同的命令
- javascript - 触发日期更改时未触发 ng-change 事件
- java - 如何在 Spring Boot 中捕获客户端参数错误的“请求处理失败”?