大家好,请帮我检查一下 Google 应用程序脚本中的这个 IF 语句

Hello everyone, please help me check this IF statement in Google app script

我想编写一个代码来为我的 sheet 分配逻辑输入。我用 IF 来制作它。我的代码 运行 成功,但逻辑不起作用。我已经检查了很多次,但我没有发现任何错误。你能帮我吗?我卡住了。请查看我的示例 sheet 和我的脚本以获取更多信息。谢谢! https://docs.google.com/spreadsheets/d/1eV2SZ45Gs6jISgh_p6RIx-rfOGlHUM6vF114Mgf6c58/edit#gid=0

function logic(){
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var activeCell = ss.getActiveCell();

  if (activeCell.getColumn() == 1 && activeCell.getRow() > 1 && ss.getSheetName() == "mama" && activeCell.getValue() == "Yes") {
    activeCell.offset(0,1).clearContent();
    activeCell.offset(0,1).setValue("1");
  } if (activeCell.getColumn() == 1 && activeCell.getRow() > 1 && ss.getSheetName() == "mama" && activeCell.getValue() == "Hafl") {
    activeCell.offset(0,1).clearContent();
    activeCell.offset(0,1).setValue("1/2");
  } if (activeCell.getColumn() == 1 && activeCell.getRow() > 1 && ss.getSheetName() == "mama" && activeCell.getValue() == "No") {
    activeCell.offset(0,1).clearContent();
    activeCell.offset(0,1).setValue(0);
  }

}

如果每个 运行 只需要一个动作解析,则需要使用 else if 来链接语句:

if(statement){
    Action
}else if (statement2){
    Action2
}else if...

您可以通过这种方式简化代码。 (注意我使用的是const变量声明而不是var(ES6 - V8 engine))

function logic() {
    const ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    const activeCell = ss.getActiveCell();
    const activeCellValue = activeCell.getValue();

    if (activeCell.getColumn() === 1 && activeCell.getRow() > 1 && ss.getSheetName() == "mama") {
        switch(activeCellValue) {
            case 'Yes':
                activeCell.offset(0, 1).clearContent();
                activeCell.offset(0, 1).setValue('1');
                break;
            case 'Half':
                activeCell.offset(0, 1).clearContent();
                activeCell.offset(0, 1).setValue('1/2');
                break;
            case 'No':
                activeCell.offset(0, 1).clearContent();
                activeCell.offset(0, 1).setValue('0');
                break;
        }
    }
}

这样你只需要测试一次常见的条件。 使用 Switch 函数清楚地显示脚本的行为取决于输入值 'ActiveCellValue'.