Диапазон A4: A100 не работает с .getRange в Google Scripts - PullRequest
0 голосов
/ 17 декабря 2018

Он работает с value = thisSheet.getRange("A4").getValue();, но не тогда, когда я изменяю его на диапазон "A4:A100"

Это мой код:

function EqualValue() {
  var allSheetTabs,i,L,thisSheet,thisSheetName,sheetsToExclude,value;

  sheetsToExclude = ['Template','Summary','Count'];

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  allSheetTabs = ss.getSheets();

  L = allSheetTabs.length;

  for (i=0;i<L;i++) {
    thisSheet = allSheetTabs[i];
    thisSheetName = thisSheet.getName();

    //continue to loop if this sheet is one to exclude
    if (sheetsToExclude.indexOf(thisSheetName) !== -1) {continue;}

    value = thisSheet.getRange("A4:A100").getValue();
    if(value >= "15") sendEmail(value)
  } 

Любые предложения приветствуются

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Вы говорите: «Столбец А - это строка», а А - это столбец.Я предполагаю, что вы имеете в виду, столбец A каждой вкладки имеет список значений.Также при условии ежедневного добавления нового значения в список внизу (?).Когда вы сравниваете значение с 15, вы отправляете sendEmail, но как узнать, какая вкладка?

Я добавил имя вкладки в функцию sendEmail, вы сможете это выяснить.

function EqualValue() {
  try {
    var sheetsToExclude = ['Template','Summary','Count'];
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var allSheetTabs = ss.getSheets();
    for( var i=0; i<allSheetTabs.length; i++ ) {
      var sheet = allSheetTabs[i];
      if( sheetsToExclude.indexOf(sheet.getName()) >= 0 ) continue;
      // I'm assuming you keep adding to A column and only want the last one?
      var values = sheet.getRange(sheet.getLastRow(),1,1,1).getValue();
      if( value >= 15 ) {
        sendEmail(sheet.getName(),value);  // You will get an email for every tab that passes test
      }
    }
  }
  catch(err) {
    SpreadsheetApp.getUi().alert(err);
  }
}
0 голосов
/ 17 декабря 2018

Я запустил точно такую ​​же функцию, как это:

function EqualValue() {
  var allSheetTabs,i,L,thisSheet,thisSheetName,sheetsToExclude,value;

  sheetsToExclude = ['CheckBoxes','Globals'];

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  allSheetTabs = ss.getSheets();

  L = allSheetTabs.length;

  for (i=0;i<L;i++) {
    thisSheet = allSheetTabs[i];
    thisSheetName = thisSheet.getName();

    //continue to loop if this sheet is one to exclude
    if (sheetsToExclude.indexOf(thisSheetName) !== -1) {continue;}

    value = thisSheet.getRange("A4:A100").getValue();
    Logger.log('%s-The value in %s is %s',i+1,thisSheet.getRange('A4:A100').getA1Notation(),value)
    if(value >= "4") Logger.log('%s-The value in %s is %s and it is greater than or equal to 4',i+1,thisSheet.getRange('A4:A100').getA1Notation(),value);
  }
}

Это работает, и вот мои результаты Logger.log:

[18-12-17 11:59:24:195 MST] 3.0-The value in A4:A100 is 
[18-12-17 11:59:24:305 MST] 4.0-The value in A4:A100 is 
[18-12-17 11:59:24:380 MST] 5.0-The value in A4:A100 is 3.0
[18-12-17 11:59:24:459 MST] 6.0-The value in A4:A100 is 
[18-12-17 11:59:24:541 MST] 7.0-The value in A4:A100 is 4.0
[18-12-17 11:59:24:543 MST] 7.0-The value in A4:A100 is 4.0 and it is greater than or equal to 4
[18-12-17 11:59:24:616 MST] 8.0-The value in A4:A100 is 4.0
[18-12-17 11:59:24:618 MST] 8.0-The value in A4:A100 is 4.0 and it is greater than or equal to 4
[18-12-17 11:59:24:690 MST] 9.0-The value in A4:A100 is 

Я использовал «4» вместо «15»,Я думал, что это просто вернет верхнюю левую ячейку, и это так.Так что, возможно, это ваша sendEmail(value) функция.

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