Javascript SendEmail函数:由于公式位于空行中而出错

Javascript SendEmail函数:由于公式位于空行中而出错,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我有一个sendmail功能,它几乎可以与我的谷歌表单完美配合 getLastRow函数返回我所有的空行,因为它们有一个隐藏的公式,我只想获取填充的行 这是我的密码: var EMAIL_SENT='EMAIL SENT'; 函数sendEmails(){ var sheet=SpreadsheetApp.getActiveSheet(); var startRow=2;//要处理的第一行数据 var numRows=sheet.getLastRow(); //获取单元格的范围 var dat

我有一个
sendmail
功能,它几乎可以与我的谷歌表单完美配合

getLastRow
函数返回我所有的空行,因为它们有一个隐藏的公式,我只想获取填充的行

这是我的密码:

var EMAIL_SENT='EMAIL SENT';
函数sendEmails(){
var sheet=SpreadsheetApp.getActiveSheet();
var startRow=2;//要处理的第一行数据
var numRows=sheet.getLastRow();
//获取单元格的范围
var dataRange=sheet.getRange(2,1,numRows-1,20);
//获取范围中每行的值。
var data=dataRange.getValues();
对于(变量i=0;i
解决方案: 替换此项:

var numRows = sheet.getLastRow();
与:

后者将过滤掉工作表中为空的单元格,即使它们包含公式

参考资料:

    • 为什么不在for循环中添加if语句,检查其中一个单元格是否为空,如果为空,则中断循环

      您的代码如下所示:

      var EMAIL_SENT='EMAIL SENT';
      函数sendEmails(){
      var sheet=SpreadsheetApp.getActiveSheet();
      var startRow=2;//要处理的第一行数据
      var numRows=sheet.getLastRow();
      //获取单元格的范围
      var dataRange=sheet.getRange(2,1,numRows-1,20);
      //获取范围中每行的值。
      var data=dataRange.getValues();
      对于(变量i=0;i
      var numRows = sheet.getRange("F1:F").getDisplayValues().filter(String).length;