Получение фильтра приводит к ошибке в скрипте Google Apps - PullRequest
1 голос
/ 20 ноября 2019

Я получаю сообщение об ошибке «Эта операция не поддерживается в диапазоне с отфильтрованной строкой». в скрипте Google Apps при попытке получить фильтр. (Я пытаюсь реализовать решение, которое я нашел здесь ( Добавление строки в фильтруемый диапазон ).

Ошибка:

This operation is not supported on a range with a filtered out row.
    at getFilter(functions:190)
    at editHousehold(Code:51)
    at addHousehold(Code:30)

Где функция getFilterстрока 190 выглядит следующим образом:

var filter = sheet.getFilter();

"sheet" - это параметр объекта Sheet, отправленный editHousehold (51) - эта строка:

var oldCrit = getFilter(SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Household List"), true);

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

1 Ответ

1 голос
/ 21 ноября 2019

Дело в том, что вы не можете вставить новую строку внутри отфильтрованного листа, потому что нет способа добавить новую строку или setValues ​​в класс Filter.

getFilter() возвращает объект Класс фильтра , который не имеет метода setValue (), который можно использовать в функции editHousehold.

getRange() возвращает объект Класс Range , который имеет такие же методы, как setValue (), которые можно использовать для редактирования значения в диапазоне.

Итак, вопрос в следующем:

Вы уверены, что объект Sheet, который выПытаетесь редактировать на editHousehold функция действительно Класс листа , а не класса Filter?

Позади остается следующий вопрос:

Выу объекта класса, к которому вы обращаетесь в любой из функций, есть методы, которые вы пытаетесь применить?

Чтобы ответить на эти вопросы, проверьте документацию, предоставленную для каждого класса, и посмотрите, какие методы разрешены.

Надеемся, что это решит ваш вопрос, в противном случае, пожалуйста, предоставьте содержание указанных функций дляв состоянии отладить их правильно.

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