TypeError: невозможно прочитать свойство getRange, равное нулю (строка 14, файл «Код»). - PullRequest
0 голосов
/ 14 июля 2020

Я получаю эту ошибку при попытке запустить сценарий отправки электронной почты в сценарии Google App. У меня нет знаний о Javascript (я планирую изучить после изучения Python), и я получил этот код из примеров кода, предоставленных скриптом Google App.

Количество строк и столбцов в Google таблица: https://prnt.sc/tha2o1

Ниже приведен код.

// This constant is written in column C for rows for which an email
// has been sent successfully.
var EMAIL_SENT = 'EMAIL_SENT';

/**
 * Sends non-duplicate emails with data from the current spreadsheet.
 */
function sendEmails2() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2; // First row of data to process
  var numRows = 6; // Number of rows to process
  // Fetch the range of cells A2:B3
  var dataRange = sheet.getRange(startRow, 1, numRows, 7);
  // 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[3]; // Third column
    if (emailSent !== EMAIL_SENT) { // Prevents sending duplicates
      var subject = 'Sending emails from a Spreadsheet';
      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 Ответ

2 голосов
/ 14 июля 2020

Я запускал автономный скрипт, но он не работал. Вы должны запускать связанный с контейнером скрипт, если вы используете sh для работы с Google Sheets / Docs / Forms / Sites. Вот как можно запустить сценарий, привязанный к контейнеру. https://developers.google.com/apps-script/guides/bound

...