Новости:

Название темы должно отражать суть задачи.
Темы типа "ПОМОГИТЕ!!!", "Срочно!" и т.п. будут удаляться без объяснения причин

Главное меню

Что нужно добавить в скрипт для Гугл таблицы, чтобы он срабатывал только в 3:00

Автор Irine87, 18.06.2021, 07:27:28

« назад - далее »

Irine87

Что нужно добавить в скрипт для Гугл таблицы, чтобы он срабатывал только в 3:00 по МСК?
Сам скрипт:

function onEdit(event) {
  try {
// Определяем текущий лист
    var ss = SpreadsheetApp.getActiveSheet();
// Определяем имя листа
    var sName =  ss.getName();
    if (sName != 'Разовые') {
      return;
    }
    var r = ss.getActiveRange();
    var col = r.getColumn(); // Начало диапазона
    if (col == 1 || col == 2 || col == 5 || col == 11) {}
    else {
      return;
    }
    var row = r.getRow();
    if (row < 3) {
      return;
    }
    var NumRow = ss.getLastRow();
    ss.getRange(3, 1, NumRow - 2, 14).sort([{column: 5, ascending: true},{column: 12, ascending: false},{column: 3, ascending: true}]);
   
    var f = ss.getFilter().getColumnFilterCriteria(11);
    if (!f) {
      f = SpreadsheetApp.newFilterCriteria()
      .setHiddenValues(['Архив'])
      .build();
    }
    var h = f.getHiddenValues();
    if (h.indexOf('Архив') == -1) {
      h.push('Архив');
      f = SpreadsheetApp.newFilterCriteria().setHiddenValues(h).build();
    }
    ss.getFilter().setColumnFilterCriteria(11, f);
  } catch (e) {
    Browser.msgBox('onEdit: ' + e);
  }
}

Дмитрий Щербаков(The_Prist)

Цитата: Irine87 от 18.06.2021, 07:27:28чтобы он срабатывал только в 3:00 по МСК?
Так у Вас скрипт вроде бы настроен на запуск при редактировании. Или Вы надеетесь, что редактирование будет именно в 3:00? :)
Может посмотреть в сторону триггеров? Они как раз для этого. Выбираете с периодичность сутки, время 3:00. А в качестве скрипта свой скрипт. Правда, судя по всему у Вас завязка еще и на адрес редактируемой ячейки идет, поэтому я в небольшом замешательстве что именно Вы хотите делать именно в 3:00...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Irine87

нужно чтобы сортировка ячеек происходила именно в 3:00 по мск, а не после внесения изменений в таблицу

Дмитрий Щербаков(The_Prist)

Так просто создайте скрипт сортировки и запускайте его триггером по времени, как я написал ранее. А так же я писал, что этот скрипт надо переделывать под новые условия.
Получиться может что-то вроде этого:
function SortTrigger {
  try {
// Определяем текущий лист
    var ss = SpreadsheetApp.getActiveSheet();
// Определяем имя листа
    var sName =  ss.getName();
    if (sName != 'Разовые') {
      return;
    }

    var NumRow = ss.getLastRow();
    ss.getRange(3, 1, NumRow - 2, 14).sort([{column: 5, ascending: true},{column: 12, ascending: false},{column: 3, ascending: true}]);
   
    var f = ss.getFilter().getColumnFilterCriteria(11);
    if (!f) {
      f = SpreadsheetApp.newFilterCriteria()
      .setHiddenValues(['Архив'])
      .build();
    }
    var h = f.getHiddenValues();
    if (h.indexOf('Архив') == -1) {
      h.push('Архив');
      f = SpreadsheetApp.newFilterCriteria().setHiddenValues(h).build();
    }
    ss.getFilter().setColumnFilterCriteria(11, f);
  } catch (e) {
    Browser.msgBox('onEdit: ' + e);
  }
}

а в триггере именно эту функцию(SortTrigger) и надо будет указать для запуска. Только тут попутно момент еще и такой, что все это сможет произойти, если сам документ открыт и активен лист "Розовые".
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Irine87

#4
[admin]Не цитируйте сообщения полностью - достаточно выделить нужную фразу и нажать ЦИТИРОВАТЬ. п.п. 4.18 Правил форума[/admin]

код не работает, выдаает ошибку http://joxi.ru/RmzXbQkcjwOWdA

Дмитрий Щербаков(The_Prist)

А Вы текст ошибки не видите? Он пишет, что лишняя открывающая скобка. Проверьте весь код, все ли открывающие/закрывающие скобки на месте.

P.S. И не надо цитировать сообщение полностью - достаточно выделить лишь цитируемую часть сообщения. А в данном случае цитирование вообще лишнее.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Irine87


Яндекс.Метрика Рейтинг@Mail.ru