ЕСЛИ тянет через «неправильное» значение ячейки - PullRequest
0 голосов
/ 14 марта 2019

Цель моего сценария - отправить мне по электронной почте значение ячейки, если ячейка не содержит текст «Не готов».

В диапазоне ячеек I2: I8 каждая ячейка, кроме I2, содержит текст «Не готов». Поэтому информация в I2 должна быть отправлена ​​мне по электронной почте.

Когда я запускаю скрипт, я неожиданно отправляю по электронной почте содержимое другой ячейки в диапазоне. Эта ячейка такая же, как и у других в диапазоне.

Моя догадка - диапазон ячеек содержит формулу IF, а не текстовую строку, которая может быть причиной.

function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet(),
 options = [
  {name:"Scan and Email", functionName:"readSheet"},
 ];
  ss.addMenu("Email", options);

 function readSheet() {

 var ss = 
 SpreadsheetApp.openById("GOOGLE SHEET");
 var sheet = ss.getSheetByName("formResponses")
   var range = sheet.getRange("I2:I8")
 var data = range.getValue();

 if (data != "Not Ready") 

  MailApp.sendEmail("MY EMAIL ADDRESS", "Test Update", "Action:" 
+data+ ".");

 }
        }

1 Ответ

2 голосов
/ 14 марта 2019

Диапазон содержит более одной ячейки, поэтому range.getValues(). Восстановленные данные - это массив. Массив никогда не будет равен строке. Заменить -

var data = range.getValue();
if (data != "Not Ready") 
  MailApp.sendEmail("MY EMAIL ADDRESS", "Test Update", "Action:" +data+ ".");
}

с -

var data = range.getValues();
var ready = data.filter(function(el) {
  return el[0] != 'Not Ready';
});
if (!ready.length) return;
MailApp.sendEmail('MY EMAIL ADDRESS', 'Test Update', 'Action:' + ready[0][0] + '.');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...