简单的IF语句不起作用

时间:2015-04-29 07:15:27

标签: google-apps-script google-sheets

我编写了这个简单的函数,只有当某个东西在另一个工作表单元格的A1中时才会在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");
}

}

4 个答案:

答案 0 :(得分:1)

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

if (dataina1 == 5)

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

答案 1 :(得分:0)

我修改了我的脚本:

这样更好

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

它的工作

答案 2 :(得分:0)

这是经典问题。 你做分配而不是比较。

如果你if(var = 5)将var设置为5并说明为真。

这对我来说非常混乱,但现在我记得正确使用我的==

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

答案 3 :(得分:-3)

我纠正了你的问题。

//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");
  }

为我工作。