Error Code - Automated Emails from Sheets

115 Views Asked by At

I followed the tutorial given here to write a script to send emails from google sheets but am recieving the following error. What could the issue here be ?

Error:TypeError: Cannot call method "getRange" of null. (line 7, file "Code")

My script is as follows :


function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;  // First row of data to process
  var numRows = 2;   // 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 = "Silvertop Taxi's Training";
    MailApp.sendEmail(emailAddress, subject, message);
  }
}
// This constant is written in column C for rows for which an email
// has been sent successfully.
var EMAIL_SENT = "EMAIL_SENT";

function sendEmails2() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;  // First row of data to process
  var numRows = 2;   // Number of rows to process
  // Fetch the range of cells A2:B3
  var dataRange = sheet.getRange(startRow, 1, numRows, 3)
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[0];  // First column
    var message = row[1];       // Second column
    var emailSent = row[2];     // Third column
    if (emailSent != EMAIL_SENT) {  // Prevents sending duplicates
      var subject = "Silvertop Taxi's Training";
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 3).setValue(EMAIL_SENT);
      // Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();
    }
  }
}

1

There are 1 best solutions below

0
On

I assume you're following this tutorial: https://developers.google.com/apps-script/articles/sending_emails?hl=en

The code works for me. No errors and the emails get sent.

The error message implies that the variable sheet is null, meaning that the code SpreadsheetApp.getActiveSheet() hasn't returned anything, but as I say it works for me.