【问题标题】:Run Google Script Through Last Spreadsheet Row Only?仅通过最后一个电子表格行运行 Google 脚本?
【发布时间】:2015-02-12 17:18:04
【问题描述】:

我正在运行一个运行良好的电子邮件脚本,但我只希望它运行到包含数据的最后一行。如果显然没有数据,我不需要它或希望它运行。我如何在下面的示例脚本中反映这一点?

例如,假设我的工作表中只有 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);
   }
}

感谢您的帮助!

【问题讨论】:

    标签: javascript for-loop google-apps-script google-sheets


    【解决方案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);
      }
    
    }
    

    【讨论】:

    • 谢谢阿米特。这似乎可以正常工作,但我在实现它时遇到了一些问题。当我运行脚本时,它说电子邮件地址无效(我使用的实际脚本比这里的示例复杂得多)但这可能是因为它不再从“第 2 行”开始吗?为什么会这样?添加您的建议之前没有任何变化。再一次 - 我认为这会很好地工作,但我不知道如何正确实施只是有点打嗝。谢谢!
    • 更新:完美运行!!我没有复制所有内容,所以有问题(duh),但你的脚本很棒。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2023-03-28
    • 2017-02-13
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多