IF功能 - Google脚本

时间:2014-06-17 13:21:50

标签: 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.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小时"作为有效的数据来查找。

  • 谁能看到我做错了什么?

1 个答案:

答案 0 :(得分:1)

您从单元格中获得的价值并不是您的想法,因为您使用的是getValues()与''你可能知道这个方法总是返回一个数组数组,即使单个单元被定义为范围。

您有两个选择:

  1. 使用getValue()获取单元格的字符串内容
  2. 使用getValues()[0][0]获取此数组的第一个(也是唯一的)元素。
  3. 我建议使用第一个解决方案,因为我认为使用适当的方法通常是个好主意... getValue()用于单个单元格,getValues()用于多个单元格... 我没有进一步检查,但我确信它可以用于此更改(适用于vResultsemailAddressesvLength)。

    由于您使用vResults来定义范围,因此也要小心确保Number(vResults)是一个数字...您可以使用{{1}}作为安全措施。