简体   繁体   中英

Error Code - Automated Emails from Sheets

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") 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(); } } }

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM