Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 如果函数-谷歌脚本_If Statement_Google Apps Script - Fatal编程技术网

If statement 如果函数-谷歌脚本

If statement 如果函数-谷歌脚本,if-statement,google-apps-script,If Statement,Google Apps Script,我正在努力让我的脚本运行IF函数。基本上,我希望基于特定的单元格内容运行脚本 我希望基于此运行IF函数,并编写了以下代码: function sendemail () { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = SpreadsheetApp.getActiveSheet(); var targetSheet = ss.getSheetByName("Response"); var vCodes = ss.g

我正在努力让我的脚本运行IF函数。基本上,我希望基于特定的单元格内容运行脚本

我希望基于此运行IF函数,并编写了以下代码:

function sendemail () {


 var ss = SpreadsheetApp.getActiveSpreadsheet(); 
 var s = SpreadsheetApp.getActiveSheet(); 

 var targetSheet = ss.getSheetByName("Response");
 var vCodes = ss.getSheetByName("Codes") 

 var vResults = targetSheet.getRange("E2").getValues(); 
 var emailAddresses = targetSheet.getRange("B2").getValues() 

 var dataRange = vCodes.getRange(1, 1, vResults, 1).getValues();
 var subject = "Here are your Wi-Fi Codes!";
 var vLength = vCodes.getRange("C2").getValues();  

 if (vLength == "24 hours"){
 MailApp.sendEmail(emailAddresses, subject, dataRange);
 targetSheet.deleteRows(2);
 vCodes.deleteRows(1,vResults);
    }
}
如果C2中的值为“24小时”,我希望它发送一封电子邮件。当我运行脚本时,没有错误,但它不会发送任何电子邮件,因为IF函数显然没有正确运行

如果我编辑代码说:

 if (vLength == "")
然后电子邮件发送。它似乎不承认“24小时”是可以查找的有效数据

  • 有人能看出我做错了什么吗

您从单元格中获得的值不是您所认为的值,因为您使用的是带有“s”的
getValues()
,并且您可能知道,即使将单个单元格定义为范围,此方法也始终返回数组数组

您有两种选择:

  • 使用
    getValue()
    获取单元格的字符串内容
  • 使用
    getValues()[0][0]
    获取此数组的第一个(也是唯一的)元素
  • 我会建议第一种解决方案,因为我认为使用适当的方法通常是个好主意<代码>getValue()用于单个单元格,而<代码>getValue()用于多个单元格。。。 我没有进一步检查,但我非常确定它将与此更改一起工作(适用于
    vResults
    电子邮件地址
    vLength


    还要注意确保
    vResults
    是一个数字,因为您使用它来定义范围。。。您可以使用
    Number(vResults)
    作为一种安全措施。

    那么,该代码怎么会不符合您的要求呢?你有错误吗?请编辑您的问题以表明此点。已编辑!希望它现在更有意义调试它,看看为什么它没有进入If。你有数据,我们没有。正如我说的,没有错误,所以调试没有任何作用。我不认为你需要数据来帮助我,如果我需要的话,我会把它放在这里。有两个选项卡,一个称为“响应”,另一个称为“代码”。在“代码”表中,我希望在C2单元显示“24小时”时发送一封电子邮件