ссылка на ячейку вне диапазона в уведомлениях по электронной почте - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть приведенный ниже код для отправки уведомления по электронной почте, когда ячейка изменяется, но она всегда возвращает ссылку на ячейку вне диапазона (строка 5, файл «Отчет о пропавших без вести»).Может кто-нибудь посоветовать, если мне нужно изменить код или есть способ заставить его перестать работать и все еще отправить уведомление по электронной почте через.Триггер, который я использую, это OnChange, потому что когда он был в OnEdit, он возвращался с ошибкой, вызываемой слишком много раз в строке 17 MailApp.sendEmail (получатели, тема, msgPlain, {htmlBody: body}).Любая помощь будет принята с благодарностью.

function sendEnailNotification(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var cellvalue = ss.getActiveCell().getValue().toString();

if(SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName() == "Missing Cuts Report") {
if(cell.indexOf('B')!=-1){
 if(cellvalue > "") {
  //Define Notification Details
      var recipients = "email@email.co.uk;
      var subject = "New Missing Cut Added";
      var body = 'A new line has been added on the Missing Cuts Report on line  <b>' + cell + '</b> - click <a href="' + ss.getUrl() + '">here</a> to view the update';

   var msgPlain = body.replace(/(<([^>]+)>)/ig, ""); // clear html tags for plain mail
    MailApp.sendEmail(recipients, subject, msgPlain, { htmlBody: body });
      }
    }
  }
}

1 Ответ

0 голосов
/ 27 ноября 2018

Привет, это не очень хороший способ достижения желаемого результата.Не совсем уверен, что вы после.Однако я внес некоторые коррективы в ваш код с помощью примечаний после закрывающих скобок.Это не ответ на вашу первоначальную проблему.Просто несколько подсказок.

    function sendEmailNotification() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var cellvalue = ss.getActiveCell().getValue().toString();

if(sheet.getName() === "Missing Cuts Report") {
//if(cell.indexOf('B')!== -1){
 if(cellvalue !== "") {
  //Define Notification Details
      var recipients = "email@address.org";
      var subject = "New Missing Cut Added";
      var body = 'A new line has been added on the Missing Cuts Report on line  <b>' + cell + '</b> - click <a href="' + ss.getUrl() + '">here</a> to view the update';

   var msgPlain = body.replace(/(<([^>]+)>)/ig, ""); // clear html tags for plain mail
    MailApp.sendEmail(recipients, subject, msgPlain, { htmlBody: body });
      } // "<" and ">" are not for comparing string values. (At least not in this case.)
    //} //IndexOf will always result in -1 if you are looking for just "B" as your result will always be "B1/B2/B3/ect."
  } // Already have the sheet object, no need to call again.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...