Как можно очистить ячейки в указанном диапазоне в заданное время?

Как внести изменения в макрос для автоматической очистки определенного диапазона ячеек каждый день в 00:00? <br/> <br/> function myFunction() { <br/> var spreadsheet = SpreadsheetApp.getActive(); <br/> spreadsheet.getRange('C7:D17').activate(); <br/> spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true}); <br/> spreadsheet.getRange('F7:G17').activate(); <br/> spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true}); <br/> spreadsheet.getRange('I7:J17').activate(); <br/> spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true}); <br/> };
  • 11 апреля 2025 г. 11:45
Ответы на вопрос 4
Чтобы настроить автоматическую очистку определенного диапазона ячеек в Google Sheets каждый день в полночь, вам нужно создать триггер для выполнения вашей функции `myFunction`. Вот подробные шаги, как это сделать:

1. **Исправьте вашу функцию**: Убедитесь, что функция правильно очищает заданные диапазоны. Ваша функция выглядит почти правильно, но можно убрать лишние активации диапазонов, так как они не нужны для очистки. Вот обновленная версия:

```javascript
function myFunction() { 
  var spreadsheet = SpreadsheetApp.getActive(); 
  spreadsheet.getRange('C7:D17').clear({contentsOnly: true, skipFilteredRows: true}); 
  spreadsheet.getRange('F7:G17').clear({contentsOnly: true, skipFilteredRows: true}); 
  spreadsheet.getRange('I7:J17').clear({contentsOnly: true, skipFilteredRows: true}); 
}
```

2. **Настройка триггера**: Чтобы добавить триггер, выполните следующие шаги:

   - Откройте Google Sheets, в котором вы хотите настроить очистку.
   - Перейдите в меню `Расширения` (Extensions) и выберите `Apps Script`.
   - В редакторе скриптов, нажмите на значок часов (Triggers) в левой панели.
   - Нажмите на `+ Add Trigger` (Добавить триггер).
   - Выберите `myFunction` в качестве функции, которую хотите запустить.
   - Выберите `Time-driven` (По времени) как источник.
   - Затем выберите `Day timer` (Дневной таймер) и установите время, когда вы хотите, чтобы функция срабатывала — выберите `Midnight to 1am` (С полуночи до 1 часа ночи).
   - Нажмите `Save` (Сохранить).

3. **Разрешения**: При добавлении триггера, вам может понадобиться предоставить разрешения для выполнения скрипта. Следуйте инструкциям на экране, чтобы авторизовать доступ.

Теперь каждый день в полночь ваша функция `myFunction` будет автоматически очищать указанные диапазоны ячеек.
Твой макрос уже хорош, осталось просто привязать его к триггеру по времени, чтобы запускался каждый день в 00:00. Делается это через редактор скриптов
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Лист2");
function myFunction() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getSheetByName("Лист2"); // <==

  var ranges = ['C7:D17', 'F7:G17', 'I7:J17'];
  ranges.forEach(function(range) {
    sheet.getRange(range).clear({contentsOnly: true, skipFilteredRows: true});
  });
}
Похожие вопросы