我正在运行一个可以正常运行的电子邮件脚本,但我只希望它在数据中运行最后一行。如果没有明显的数据,我不需要它或者希望它运行。我如何在下面的示例脚本中反映出来?
例如,假设我的工作表中只有3行数据。我只需要脚本来运行这3行,但代码将运行20行。要处理的条目数量会因日期而异,因此我无法将其设置为设定的数字。
基本上我想替换:
var numRows =20;// Number of rows to process
有一些.getlastrow的迭代......我想?
示例脚本供参考:
function sendEmails() {
var sheet =SpreadsheetApp.getActiveSheet();
var startRow =2;// First row of data to process
var numRows =20;// Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow,1, numRows,2)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for(i in data){
var row = data[i];
var emailAddress = row[0];// First column
var message = row[1];// Second column
var subject ="Sending emails from a Spreadsheet";
MailApp.sendEmail(emailAddress, subject, message);
}
}
感谢您的帮助!
答案 0 :(得分:1)
您可以使用getLastRow()方法获取工作表中最后一个填充行的索引。或者使用getDataRange()。getValues,它只会获取包含数据的行。
function sendEmails(){
var sheet = SpreadsheetApp.getActiveSheet();
var startRow =2;// First row of data to process
var data = sheet.getDataRange().getValues();
for(var i=startRow; i<data.length; i++){
var row = data[i];
var emailAddress = row[0];// First column
var message = row[1];// Second column
var subject ="Sending emails from a Spreadsheet";
MailApp.sendEmail(emailAddress, subject, message);
}
}