简单的 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)
。这将帮助您避免错误,如果您错过第二个字符,编译器会警告您。
我写了这个简单的函数,只有当其他 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)
。这将帮助您避免错误,如果您错过第二个字符,编译器会警告您。