我希望下面的onEdit(e)函数能够根据单元格的新旧值在电子表格中添加或删除行。这需要我的IF语句中的OR(||)运算符来检查值。下面是我的第一次尝试,但是导致了一些奇怪的行为,例如在一次编辑后出现然后消失的行(第二个IF语句),每当我点击"删除"钥匙等:
command failed (exitstatus=0): /Users/Emma/.rvm/gems/ruby-2.2.1/bin/wkhtmltopdf --page-size Letter --margin-top 0.75in --margin-right 0.75in --margin-bottom 0.75in --margin-left 0.75in --encoding UTF-8 toc - -
当我更改我的IF语句以在每个OR运算符之后重新生成变量时,干净地生成了所需的结果:
function onEdit(e) {
var range = e.range;
var newValue = e.value;
var oldValue = e.oldValue;
var targetRow = range.getRow();
//insert 2 rows if edited cell value = "a" or "b"
if (newValue === "a" || "b") {
sheet.insertRowsAfter(targetRow, 2);
}
//delete 2 rows if former cell value was "a" or "b"
if (oldValue === "a" || "b") {
sheet.deleteRows(targetRow + 1, 2);
}
}
是否有一种合并形式的这些陈述可以继续产生预期的结果?当我继续编写此函数时,这些IF语句可能会变得更复杂,并且需要使用OR和AND运算符检查相同的变量。只为每个运算符声明一次变量名称要容易得多。
回顾一下:
我希望能够编写代码的整合格式,如第一个代码段所示:
if (newValue === "a" || newValue === "b") {
sheet.insertRowsAfter(targetRow, 2);
}
if (oldValue === "a" || oldValue === "b") {
sheet.deleteRows(targetRow + 1, 2);
}
但是,只有在较长版本中编写时才能正常工作:
if (newValue === "a" || "b") { //etc...
谢谢!