简单的 IF 语句不起作用

Simple IF statement wont work

我写了这个简单的函数,只有当其他 sheet 单元格的 A1 中有内容时,它才应该 return 在 A1 单元格中赋值。我不确定我在这里做错了什么。它没有错误,但仍然无法完成工作。

function check() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh1 = ss.getSheetByName("downloader");
var sh2 = ss.getSheetByName("data");
var dataina1 = sh1.getRange('A1');


if (dataina1 = 5) {
sh2.getRange('B1').setValue("Five");
}

}

使用相等运算符代替赋值运算符:

if (dataina1 == 5)

如果您只使用一个 =,那么您就是将值 5 分配给 dataina1

我纠正了你的问题。

//var ss = SpreadsheetApp.openById("ID_SPREADSHEET");
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh1 = ss.getSheetByName("downloader");
var sh2 = ss.getSheetByName("data");
var value = sh1.getRange("A1").getValue();   // add .getvalue()

  if (value = 5) {
    sh2.getRange('B1').setValue("Five");
  }

对我有用。

我修改脚本:

这样比较好

function myFunction() {

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var ss = SpreadsheetApp.openById("1w-rEm7BcUUnUBcB3kSQX9A0CzryQvkD32UDwA8Eo2FY");
    var sh1 = ss.getSheetByName("downloader");

    // IN THE COLUMN A1 = 5
    var value = sh1.getRange('A1').getValues();


    Logger.log("value of the spreadsheet => "+value);
      if (value == "5") {
        sh1.getRange('B1').setValue("Five");
      }
      else{
      sh1.getRange('B1').setValue("NOT GOOD");
      }

    }

日志:

[15-04-29 18:21:42:669 CEST] value of the spreadsheet => 5

成功了

这是经典问题。 你做的是赋值而不是比较。

如果你这样做 if(var = 5) 它会将 var 设置为 5 并说它是真的。

一开始这让我很困惑,但现在我记得要正确使用我的 ==

还有一种称为 Yoda conditions 的技术,您可以将常量放在比较运算符的左侧:if (5 == var)。这将帮助您避免错误,如果您错过第二个字符,编译器会警告您。