Как исправить код, не возвращая адреса электронной почты - PullRequest
1 голос
/ 03 июля 2019

Я разместил вопрос ранее на здесь , помогая мне с кодом для ротационного листа, над которым я работаю.

Это работало. Но теперь по какой-то причине этого больше нет, и я смотрел на это часами.

Вот эти листы ссылка

Я получаю сообщение об ошибке «Нет получателя».

Я прошелся по коду как можно больше и попытался выяснить, смогу ли я устранить ошибку, но не могу докопаться до нее.

Вот код:

for (var x = 1; x < 5; x++) { // 5 because emails are till col4

    var emailAddress = []; // Start by collecting the non-blank emails in an array

    if (getEmailFromName(row[x]) != "") {

      emailAddress.push(getEmailFromName(row[x]))

    }

  }

  emailAddress = emailAddress.join();  // Join the array to get a comma separated string

  MailApp.sendEmail(emailAddress, subject, message);

Вот функция getEmailFromName:

function getEmailFromName(sKey) {



  // to use this function, don’t put anything in the first column (A) or row (1).

  // Put the name (i.e. the key, or what we’re looking for) in column B.

  // Put what we want to return in column C. 



  var columnToSearch = 1; //column B



  // Set the active sheet to our email lookup

  var ss1 = SpreadsheetApp.getActiveSpreadsheet();

  var sh1 = ss1.getSheetByName("EmailContactList")

  ss1.setActiveSheet(sh1);



  var data = SpreadsheetApp.getActiveSheet().getDataRange().getValues();

  var line = -1;

  for( var i = 0; i < data.length; i++ ) {

    if( data[i][columnToSearch] == sKey ) {

      line = i;

      break;

    }

  }



  if( line != -1 ) {

    //do what you want with the data on "line"

    return data[line][2]; //value on column C of the matched line

  } 

  else {

    return "";

  // if criteria is not found

 }

}

То, что я хочу сделать, это просто отключить электронную почту.

В идеале я бы хотел повернуть ротацию, чтобы даты заканчивались в столбце A, а роли перебирались через верх, но я доберусь до этого, как только смогу получить это надежно и стабильно!

1 Ответ

1 голос
/ 03 июля 2019

Как насчет этой модификации?

Модифицированный скрипт:

  • Когда var emailAddress = []; находится внутри цикла for, emailAddress из emailAddress = emailAddress.join() становится [].Таким образом, я думаю, что такая ошибка возникает.

Чтобы избежать этого, измените ее следующим образом.

С:
for (var x = 1; x < 5; x++) { // 5 because emails are till col4
  var emailAddress = []; // Start by collecting the non-blank emails in an array
Кому:
var emailAddress = []; // Start by collecting the non-blank emails in an array
for (var x = 1; x < 5; x++) { // 5 because emails are till col4

Если я неправильно понял вашувопрос, и это был не тот результат, который вы хотите, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...