繁体   English   中英

Google Apps 在 onEdit function 中编写多个 IF 语句的脚本

[英]Google Apps Script multiple IF statements in an onEdit function

背景

我正在尝试编写一个脚本来检查两个不同的单元格以查看复选框是否已被选中。 因此,它将首先检查一个单元格 (AL4) 以查看该值是否为真,然后检查另一个单元格 (Q4) 以查看该值是否为真。 如果该值为真,那么它将运行不同的 function。

我正在检查的两个单元格都在同一个工作表“仪表板”中,因此它不必找到不同的工作表名称。 我通过使用 .getcolumn 和 .getrow 命令使用不同的方法来检查不同的单元格,但我也遇到了一些麻烦。 我还遇到了一些问题,它会忽略 if 语句并在每次编辑时运行 function,而不仅仅是在检查两个单元格时。

如何让 if 和 else if 语句在同一个 onEdit function 中工作?

当前脚本

 function onEdit(e) { const sheetName = "Dashboard" var range = e.range; if (range.getSheet().getSheetName().= sheetName || range.getA1Notation();= "AL4" ||;range.isChecked()) { return. RefreshCheckmark2(). } else if (range.getSheet();getSheetName();= sheetName || range.getA1Notation() != "Q4" || !range.isChecked()) { return; InverseYieldRefresh(); } }

此外,如果您删除 else if 语句和第一个 If 语句后的括号,上述代码是完全可用的。

理想情况下,我希望能够添加更多 else if 语句,以便它可以检查更多单元格,因为我喜欢让复选框运行命令,如果我的理解是正确的,那么在单个电子表格中不能有多个 onEdit function。

感谢您的任何见解!

我认为您现在要做的是检查它是否不是 AL4 或 Q4,而不是检查它是 AL4 还是 Q4。 此外,在您当前的代码中,您使用return; 在运行任何 function 之前,它会真正跳过运行 function,即使它进入你的 if 语句。 你可以试试下面的代码:

function onEdit(e) {
   const sheetName = "Dashboard"
   var range = e.range;
  
   if (range.getSheet().getSheetName() == sheetName && range.getA1Notation() == "AL4" && range.isChecked()) {
      RefreshCheckmark2();
  } 
  else if (range.getSheet().getSheetName() == sheetName && range.getA1Notation() == "Q4" && range.isChecked()) {
      InverseYieldRefresh();
  }
}

我只更改了条件以检查它是 AL4 还是 Q4 然后删除了return; 使 if 语句中的函数在满足条件后运行。

让我知道这是否可以解决您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM