仅通过最后一行运行Google脚本
Run Google Script Through Last Spreadsheet Row Only?
我正在运行一个运行良好的电子邮件脚本,但我只希望它能运行到最后一行,其中包含数据。我不需要它,也不希望它在明显没有数据的情况下运行。我如何在下面的示例脚本中反映这一点?
例如,假设我的工作表中只有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);
}
}
谢谢你的帮助!
您可以使用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);
}
}
相关文章:
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 使用压缩的JavaScript文件(不是运行时压缩)
- Javascript运行php文件,然后下载文件
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Angularjs代码未在匿名函数中运行
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 如何确保JQuery的一行在另一行之前运行
- 仅通过最后一行运行Google脚本
- 如何在 Node.js 中为非常大 (> 1GB) 文件的每一行运行异步函数
- 在更新数据库中的一行之后,再次运行php行
- Firefox ONLY不会在if语句中运行一行javascript代码,但会运行其他行——chrome和safari运
- 为什么Protractor会立即运行每一行代码
- 在运行循环的每一行时添加一个暂停
- 我如何触发模糊和运行通过所有输入在一行
- 附加到元素的脚本标记会在.append()之后的下一行之前运行吗?
- javascript animation:为什么下一行在动画结束之前运行
- 运行一行javascript代码
- 为表- MVC中的每一行运行OnChange事件
- 在前一行代码完成后运行一行jQuery