【发布时间】:2020-04-01 16:01:44
【问题描述】:
我正在编写一个 Google 表格 onEdit() 触发器,它只需要在任何已编辑的单元格位于电子表格的指定范围内时执行某些操作。
我有这个:
function onEdit(e) {
var editRange = e.range;
var numRows = editRange.getNumRows();
var numCols = editRange.getNumColumns();
for (var i = 1; i <= numRows; i++) {
for (var j = 1; j <= numCols; j++) {
var cell = editRange.getCell(i,j);
if (isInRange(cell, myNamedRange)) {
/* Do something clever */
}
}
}
}
但是我在编写isInRange() 函数时遇到了麻烦。感觉应该是内置的电子表格功能,但我找不到任何看起来可能的东西。
更新:一夜之间让我觉得可能有更简单的方法。我真正需要的是两个范围之间的交集。
【问题讨论】:
-
我注意到您刚刚更新了您的答案。在您的脚本中,当编辑多个单元格时,每个单元格都由
if (isInRange(cell, myNamedRange)) {}检查true或false。所以我提出了示例脚本。但我深表歉意,我的回答没有用。从您更新的问题中,虽然我不确定我是否能正确理解您的目标,但我又添加了一个示例脚本。你能确认一下吗?如果我误解了您的目标并且这不是您想要的方向,我深表歉意。 -
@Tanaike:不,我确实认为您的原始解决方案很有帮助。谢谢你。现在才凌晨,我还没有真正开始:-)
-
@Tanaike:我添加了我的更新,因为我认为它可能有用。我想知道是否有内置的“两个范围的交集”功能。但是,现在看了,一个也看不到。所以我会回到你原来的解决方案。
-
感谢您的回复。不幸的是,在当前阶段,没有内置方法可以直接检索两个范围的交集范围。如果尝试实现此功能,我认为该示例可能类似于我的答案中的示例脚本。检查一个单元格的脚本很简单。但是检查多个单元格的脚本有点复杂。如果示例脚本有用,我很高兴。
标签: google-apps-script google-sheets