在脚本中使用OR和AND的正确方法是什么?

时间:2019-10-18 04:11:00

标签: google-apps-script google-sheets-api

这是编写将两个if语句合并为1的OR条件的正确方法吗?

if (activeSheet.getName() == ("2 Grade" || "3 Grade") && Cell.getRow() >= 53 && Cell.getColumn() >= 9 && Cell.getRow() <= 57 && Cell.getColumn() <= 13) {
     supplierSeal2G.copyTo(supplierSeal2GData, SpreadsheetApp.CopyPasteType.PASTE_VALUES,true);
     surveyorSeal2G.copyTo(surveyorSeal2GData, SpreadsheetApp.CopyPasteType.PASTE_VALUES,true);
     remarks2G.copyTo(remarks2GData, SpreadsheetApp.CopyPasteType.PASTE_VALUES,true);
  }

1 个答案:

答案 0 :(得分:1)

此修改如何?请认为这只是几个答案之一。

模式1:

在这种模式下,sheetName被声明并用于if语句。

发件人:

if (activeSheet.getName() == ("2 Grade" || "3 Grade") && Cell.getRow() >= 53 && Cell.getColumn() >= 9 && Cell.getRow() <= 57 && Cell.getColumn() <= 13) {

收件人:

var sheetName = activeSheet.getName();
if ((sheetName == "2 Grade" || sheetName == "3 Grade") && Cell.getRow() >= 53 && Cell.getColumn() >= 9 && Cell.getRow() <= 57 && Cell.getColumn() <= 13) {

模式2:

在这种模式下,["2 Grade", "3 Grade"]被准备为数组,并与indexOf()一起用于if语句。

发件人:

if (activeSheet.getName() == ("2 Grade" || "3 Grade") && Cell.getRow() >= 53 && Cell.getColumn() >= 9 && Cell.getRow() <= 57 && Cell.getColumn() <= 13) {

收件人:

var sheetNames = ["2 Grade", "3 Grade"];
if (sheetNames.indexOf(activeSheet.getName()) > -1 && Cell.getRow() >= 53 && Cell.getColumn() >= 9 && Cell.getRow() <= 57 && Cell.getColumn() <= 13) {

参考:

如果这不是您想要的结果,我表示歉意。