If statement 这";如果;韩元';我不工作。为什么?

If statement 这";如果;韩元';我不工作。为什么?,if-statement,google-apps-script,google-sheets,If Statement,Google Apps Script,Google Sheets,我编写了以下代码: function test() { var spreadsheet = SpreadsheetApp.getActive(); var ui = SpreadsheetApp.getUi(); var testModeStatus = spreadsheet.getSheetByName("Students").getRange("P2:P2").getValues(); if (testModeStatus == 'FALSE') { ui.a

我编写了以下代码:

function test() {
  var spreadsheet = SpreadsheetApp.getActive();
  var ui = SpreadsheetApp.getUi();
  var testModeStatus = spreadsheet.getSheetByName("Students").getRange("P2:P2").getValues();  
  if (testModeStatus == 'FALSE') {
     ui.alert("This is inside IF and Test Mode Status is "+testModeStatus);
    };
    ui.alert("This is outside IF and Test Mode Status is "+testModeStatus);
};
在上述代码中,变量
testModeStatus
指的是一个作为复选框的工作表单元格,其值可以是
TRUE
(选中)或
FALSE
(未选中)

我希望
if
中的代码仅在复选框未选中时运行。但无论复选框是选中还是取消选中,如果
if
中的代码都不会运行,在这两种情况下,只有
if
中的代码运行。

此外,在这两种情况下,变量
testModeStatus
在弹出警报消息中显示正确的值。我的意思是,如果选中该复选框,变量将显示
TRUE
,如果未选中该复选框,变量将在弹出的警报消息中显示
FALSE

您正在比较苹果和橙子

.getValues()
返回一个二维数组,而
的“FALSE”
是一个字符串

由于您获得了一个单元格,因此可以使用
.getValue
,但请注意,GAS会将布尔值解析为JS布尔值,因此,代码最终应为:

function test() {
  var spreadsheet = SpreadsheetApp.getActive();
  var ui = SpreadsheetApp.getUi();
  var testModeStatus = spreadsheet.getSheetByName("Students").getRange("P2:P2").getValue();  // getValue, not values
  if (testModeStatus == false) { //false, not "FALSE"
     ui.alert("This is inside IF and Test Mode Status is "+testModeStatus);
    };
    ui.alert("This is outside IF and Test Mode Status is "+testModeStatus);
};

你在拿苹果和桔子做比较

.getValues()
返回一个二维数组,而
的“FALSE”
是一个字符串

由于您获得了一个单元格,因此可以使用
.getValue
,但请注意,GAS会将布尔值解析为JS布尔值,因此,代码最终应为:

function test() {
  var spreadsheet = SpreadsheetApp.getActive();
  var ui = SpreadsheetApp.getUi();
  var testModeStatus = spreadsheet.getSheetByName("Students").getRange("P2:P2").getValue();  // getValue, not values
  if (testModeStatus == false) { //false, not "FALSE"
     ui.alert("This is inside IF and Test Mode Status is "+testModeStatus);
    };
    ui.alert("This is outside IF and Test Mode Status is "+testModeStatus);
};