Есть ли функция для исключения определенных листов из моей рабочей книги из скрипта - PullRequest
2 голосов
/ 24 октября 2019

Я пытаюсь написать код для очистки определенных ячеек данных ("F2:M95") по временному триггеру раз в неделю. Все работает так, как я хочу, за исключением того, что я заметил, что это очищает данные от этих конкретных ячеек на каждом листе в моей книге.

Это функция, которую я в настоящее время имею:

function LunchEmailClear() {
  var app = SpreadsheetApp;
  var activeSheet = app.getActive()
  activeSheet.getRange("F2:M95").clear();
}

Что можетЯ добавляю так, чтобы это относилось только к определенным листам? (т.е. «Утренние электронные письма, электронные письма на обед»)

PS. Также извините, если я выгляжу немного ошеломленным, я просто начал баловаться со сценариями на прошлой неделе и вряд ли могу понять, что я делаю. Я ценю любую помощь, которую я могу получить! :)

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Это должно работать правильно:

function LunchEmailClear() {
  //Add the list of sheets to clean
  var sheets = ['Morning Emails', 'Lunch Emails'] 
  var app = SpreadsheetApp.getActive();

  for (var i=0; i < sheets.length; i++){
    app.getSheetByName(sheets[i]).getRange("F2:M95").clear();
  }
}
1 голос
/ 24 октября 2019

Объяснение:

Мы можем использовать метод JavaScript Array.indexOf() для достижения этой цели.

В приведенном ниже скрипте у меня есть массив листов, которые мы хотим включить и определили егокак var include. Затем мы можем сравнить этот массив с именами листов, используя цикл for, выполняющий инструкцию if. Это проверяет имена листов по нашему массиву включений, используя Array.indexOf().


Пример:

function emailClear() {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();

  //list sheets to include here
  var include = ['Morning Emails', 'Lunch Emails'];

  for (var i = 0; i < sheets.length; i++) {
    if (include.indexOf(sheets[i].getName()) > -1) {
      sheets[i].getRange("F2:M95").clear();
    }
  }
}

Ссылки:

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