Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将google列的值与数组进行比较,并根据列数据发送特定的电子邮件,并向特定用户发送电子邮件

如何将google列的值与数组进行比较,并根据列数据发送特定的电子邮件,并向特定用户发送电子邮件
EN

Stack Overflow用户
提问于 2020-10-24 19:20:50
回答 1查看 43关注 0票数 0

我正在自动化我的谷歌表格,以自动发送电子邮件,我不知道如何比较变量数组与列在我的谷歌页。当我把它放在'IF‘语句中时,我会不断地得到返回的所有值,而不仅仅是数组中的值。我希望我的代码只显示gEnglish变量中的数据,而不是显示所有数据。我还想知道我如何能够根据地区向用户发送电子邮件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function sendEmails() {
  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Main").activate();
  
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lr = ss.getLastRow();
  
  var decisionOne = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Templates").getRange(1,1).getValue();
  var decisionTWO = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Templates").getRange(2,1).getValue();
  var decisionThree = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Templates").getRange(3,1).getValue();
  var decisionFour = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Templates").getRange(5,1).getValue();
  var decisionFive = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Templates").getRange(4,1).getValue();
  
  var gEnglish = ["IT","US","GB","UK"];
  var gSpanish = ["SP"];
  
  var user1 = ["JP","SK","IND","RU"];
  var user2 = [gEnglish,"UK"];
  var user3 = [gSpanish, "BR", "PT"];
  var user4 = ["FR", "DE","IT"];
  
  for (var i = 2;i<=lr;i++){
    var type = ss.getRange(i,6).getValue();
    var region = ss.getRange(i, 5).getValue();
    var decision = ss.getRange(i,15).getValue();
    //I used to have if(region == gEnglish)
    if(gEnglish.includes(region[i]) ){
      var channel = ss.getRange(i,3).getValue();
      var decision = ss.getRange(i,15).getValue();
      var url = ss.getRange(i, 9).getValue();
      var name = ss.getRange(i,11).getValue();
      var messageBody = {};
      var subjectLine = "blahblahblah";
    }    
  }
}

如果我的数组中只有一个值,它可以正常工作,但是一旦我放得更多,我就会得到所有返回的值。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-26 02:47:04

答案:

.getValue()返回单元格的数据,而不是数组。因此,您不需要使用region[i]__引用数据。

更多资料:

假设您有单元格C1中的值"Hello“。要获得这个值,您可以使用getValue()getValues()对象的Range方法。

如果运行以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let c = SpreadsheetApp.getActiveSpreadsheet()
                      .getSheetByName(sheetName)
                      .getRange("C1");

console.log(c.getValue());
console.log(c.getValues());

执行日志将显示以下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Oct 26, 2020, 11:42:39 AM   Debug   Hello World
Oct 26, 2020, 11:42:39 AM   Debug   [ 'Hello World' ]

做同样的事情,但是访问元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let c = SpreadsheetApp.getActiveSpreadsheet()
                      .getSheetByName(sheetName)
                      .getRange("C1");

console.log(c.getValue()[0]);
console.log(c.getValues()[0]);

将在执行日志中显示以下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Oct 26, 2020, 11:44:39 AM   Debug   H
Oct 26, 2020, 11:44:39 AM   Debug   Hello World

修正:

更改以下行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (gEnglish.includes(region[i])) {
  //...
}

至:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (gEnglish.includes(region)) {
  // ...
}

参考文献:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64520033

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文