google-apps-script - 如何检查工作表 A 和 B 是否是同一张工作表?
问题描述
因此,我试图通过最初检查修改后的单元格是否甚至在正确的工作表中来优化我的工作表 onEdit 功能,如下所示:
var spreadsheet1 = ss.getSheetByName("ONE")
var spreadsheet2 = ss.getSheetByName("TWO")
function onEdit(e) {
let range = e.range
Logger.log("Starting onEdit")
Logger.log("Range: " + range.getSheet().getSheetId().toString())
Logger.log("spreadsheet1: " + spreadsheet1.getSheetId().toString())
Logger.log("spreadsheet2: " + spreadsheet1.getSheetId().toString())
Logger.log("Is spreadsheet1 :" + range.getSheet().getSheetId() == spreadsheet1.getSheetId())
Logger.log("Is spreadsheet2:" + range.getSheet().getSheetId() == spreadsheet2.getSheetId())
if (range.getSheet().getSheetId() == spreadsheet1.getSheetId() ||
range.getSheet().getSheetId() == spreadsheet2.getSheetId())
{
do stuff
}
日志如下所示:
Oct 12, 2021, 2:12:54 PM Info Starting onEdit
Oct 12, 2021, 2:12:54 PM Info Range: 78085800
Oct 12, 2021, 2:12:54 PM Info spreadsheet1: 78085800
Oct 12, 2021, 2:12:54 PM Info spreadsheet2: 514624715
Oct 12, 2021, 2:12:54 PM Info Is spreadhseet1: false
Oct 12, 2021, 2:12:54 PM Info Is spreadsheet2: false
这两个条件之一应该返回 true 并且 if 应该被评估为 true 但由于某种原因它不起作用!
解决方案
问题出在你的记录器上。目前,它将两个字符串加在一起并将它们与第三个字符串进行比较。因此,正在比较的内容如下所示:
"Is spreadsheet1 :78085800" == "78085800"
这显然是错误的,所以只需要使用括号来改变操作的顺序。尝试将记录器更新为以下内容:
Logger.log("Is spreadsheet1: " + (range.getSheet().getSheetId() == spreadsheet1.getSheetId()))
Logger.log("Is spreadsheet2: " + (range.getSheet().getSheetId() == spreadsheet2.getSheetId()))
推荐阅读
- git - 在 Linux 中执行 git config 命令后 GIT Push 什么也不做
- javascript - 在用户仍在键入时异步获取输入值
- swift - ios 13 推送通知设备令牌
- python - 管理每日购物清单,'list' 对象不可调用
- git - 如何将我的 git 远程分支恢复到 IntelliJ 中的先前提交?
- c# - 我可以将 C/C++ 结构中的数据编组到具有属性的 C# 结构中吗?
- javascript - How to delay "ngondestroy" hook calling while components destroy?
- node.js - binding/bcrypt_lib.node' was compiled against a different Node.js version using NODE_MODULE_VERSION
- php - 执行mysqli语句后如何获取行数?
- java - How can I read odd and even lines for coordinates in Java?