Google Script для выполнения оператора IF в цикле для значения даты - PullRequest
0 голосов
/ 28 декабря 2018

Я работаю над сценарием для автоматизации ежедневной функции копирования + вставки (в качестве значения).Я работал над этим поэтапно, и мой последний вопрос - зацикленное выражение if, которое смотрит на дату относительно сегодняшней даты.

Вы можете видеть, что в столбце B находится мой столбец 'Date', а в столбце 1 строки 1 AN я ввел функцию today ().

По сути, каждый день я копирую и вставляю (как значение)любые строки (столбцы I - AM), которые соответствуют «сегодняшней» дате, выделяют их серым цветом и затем скрывают строки.После того, как я смогу настроить оператор if для цикла, чтобы он распознал правильные строки, я могу установить ежедневный триггер утром для запуска функции.

Код ниже - любая и вся помощь очень ценится!

function dailyUpdate() 
{
  var sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Copy of Results');
  var dateValues = sht.getRange(2,2,1231).getValues();
  for (r=1; r<1232; r++)
    var todayValue = sht.getRange(1,39).getValue();
    var dateValues = sht.getRange(r,2).getValues();
    if(dateValues == todayValue)
    {
      var source = sht.getRange(r,9,1,31);
      source.copyTo(sht.getRange(r,9,1,31), {contentsOnly: true});
      sht.hideRow(source)
      source.setBackground("grey");
  }
}

1 Ответ

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

Вы сравниваете sht.getRange(1,39).getValue() с sht.getRange(r,2).getValues().getValue() возвращает одно значение, а getValues() возвращает двумерный массив.И поскольку вы используете формулу в своем листе, попробуйте getDisplayValue() вместо getValues().

Попробуйте что-то вроде этого:

function dailyUpdate()  {
  var sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Copy of Results');
  var todayValue = sht.getRange(1,39).getDisplayValue();
  for (r=1; r<1232; r++) {
    var dateValue = sht.getRange(r,2).getDisplayValue();
    if(dateValue == todayValue) {
      var source = sht.getRange(r,9,1,31);
      source.copyTo(sht.getRange(r,9,1,31), {contentsOnly: true});
      sht.hideRow(source)
      source.setBackground("grey");
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...