首页 > 解决方案 > 遍历列,查找匹配,并复制同一行中单元格的内容

问题描述

我有一个遍历特定列的代码(电子表格 https://docs.google.com/spreadsheets/d/1pebqQFpwkC5OQ59wBEG9RXggHkt1pYhbm3cFBw8rLWE/edit?usp=sharing)并为它在列中找到的每个匹配项发送一条消息(匹配项是“完成”这个词)。但我需要的是找到匹配项并包含消息中同一行中的某些单元格的内容。关于如何做的任何想法?谢谢。

function completeInfoToExtend() {
var ss = 
SpreadsheetApp.openById("1pebqQFpwkC5OQ59wBEG9RXggHkt1pYhbm3cFBw8rLWE");
var sh = ss.getSheetByName('Controle de Status');
var lastRow = sh.getLastRow();
var data = sh.getRange(1,50,lastRow,1).getValues();
for (var i=0; i < data.length; i++) {

if (data[i][0] === "Complete") {

MailApp.sendEmail({
 name: "XXXX",
 to: "email@email.com",
 subject: "Action needed - Send codes to Master Data team",
 htmlBody: message1

  }); 
}
}
}

标签: google-apps-script

解决方案


您想在 getRange() 请求中获取更多数据。在不知道要包含的数据位于哪一列的情况下,很难具体告诉您要做什么,但这会抓取相邻单元格(右侧)中的数据并将其包含在电子邮件正文中。

function completeInfoToExtend() {
  var ss = SpreadsheetApp.openById(
    "1pebqQFpwkC5OQ59wBEG9RXggHkt1pYhbm3cFBw8rLWE"
  );
  var sh = ss.getSheetByName("Controle de Status");
  var lastRow = sh.getLastRow();
  var data = sh.getRange(1, 50, lastRow, 2).getValues();
  for (var i = 0; i < data.length; i++) {
    if (data[i][0] === "Complete") {
      MailApp.sendEmail({
        name: "XXXX",
        to: "email@email.com",
        subject: "Action needed - Send codes to Master Data team",
        htmlBody: "<h1>This is the data:<h1><p>" + data[i][1] + "</p>"
      });
    }
  }
}

推荐阅读