【发布时间】:2018-07-30 15:34:47
【问题描述】:
我有一个电子表格,其中 K 列中有电子邮件地址,然后 A 到 D 列中有数据。我正在尝试编写一个脚本,该脚本将通过电子邮件发送 col K 中的所有电子邮件地址。主题应该是 Col 中的最后一行C 和电子邮件正文应该是 col D 中的最后一行
以下是我所拥有的,但我有两个问题。每当我需要向列表中添加电子邮件地址时,我都需要调整脚本var dataRange = sheet.getRange("K4:K9"); 以在 K10 中包含新的电子邮件地址。有一个更好的方法吗?
我还尝试将 getLastRow 用于电子邮件主题和正文,它可以工作,但它只是获取 dataRange 中的最后一行。我必须每天更新var dataRange2= sheet.getRange("A4:D6");,添加一个新行。我试图使 dataRange 更大,但随后将空白行作为最后一行。同样,我不知道如何使其自动化。
/**
* Sends emails with data from the current spreadsheet.
*/
function sendEmails2() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 3; // First row of data to process
var numRows = 2; // Number of rows to process
// Fetch the Email range of cells K4:K6
var dataRange = sheet.getRange("K4:K9");
var emailAddress = dataRange.getValues() // Email Col
var dataRange2= sheet.getRange("A4:D6");
var message = SpreadsheetApp.getActiveSheet().getRange("D" + dataRange2.getLastRow()).getValues(); // Fact Col
var subject = SpreadsheetApp.getActiveSheet().getRange("C" + dataRange2.getLastRow()).getValues(); // Question Col
MailApp.sendEmail(emailAddress, subject, message);
}
【问题讨论】:
-
不要硬编码范围参数,使用
getRange的其他签名,即接受4个参数的签名。它适用于getLastRow()。
标签: google-apps-script google-sheets gmail