Добрый день уважаемые форумчане! Подскажите пожалуйста. У меня не срабатывает скрипт в ГУГЛ таблицах на фильтрацию через кнопку. Если просто руками фильтровать значение то он (фильтр) работает, а через кнопку после срабатывания скрипта приходится заходить в фильтр и нажимать кнопку ОК, тогда работает. Необходимо, чтоб фильтр показывал все значения кроме ЛОЖЬ. Скрипт вот такой:
function filtr() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange('C2').activate(); var criteria = SpreadsheetApp.newFilterCriteria() .setHiddenValues(['ЛОЖЬ']) .build(); spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(3, criteria); criteria = SpreadsheetApp.newFilterCriteria() .build(); spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(3, criteria); spreadsheet.getRange('C1').activate(); };
Добрый день уважаемые форумчане! Подскажите пожалуйста. У меня не срабатывает скрипт в ГУГЛ таблицах на фильтрацию через кнопку. Если просто руками фильтровать значение то он (фильтр) работает, а через кнопку после срабатывания скрипта приходится заходить в фильтр и нажимать кнопку ОК, тогда работает. Необходимо, чтоб фильтр показывал все значения кроме ЛОЖЬ. Скрипт вот такой:
function filtr() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange('C2').activate(); var criteria = SpreadsheetApp.newFilterCriteria() .setHiddenValues(['ЛОЖЬ']) .build(); spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(3, criteria); criteria = SpreadsheetApp.newFilterCriteria() .build(); spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(3, criteria); spreadsheet.getRange('C1').activate(); };vserosinkas
Сообщение отредактировал vserosinkas - Суббота, 25.06.2022, 05:41
Я бы для начала удалил из скрипта зачеркнутые строки. С их помощью идёт попытка построить следующий фильтр (зачем-то), но при этом до .build не задается никакое условие: [vba]
Код
function filtr() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange('C2').activate(); var criteria = SpreadsheetApp.newFilterCriteria() .setHiddenValues(['ЛОЖЬ']) .build(); spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(3, criteria);
[/vba] Если не поможет, предоставьте доступ к расшаренной таблице-примеру - будем дальше смотреть что можно сделать.
Я бы для начала удалил из скрипта зачеркнутые строки. С их помощью идёт попытка построить следующий фильтр (зачем-то), но при этом до .build не задается никакое условие: [vba]
Код
function filtr() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange('C2').activate(); var criteria = SpreadsheetApp.newFilterCriteria() .setHiddenValues(['ЛОЖЬ']) .build(); spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(3, criteria);
Gustav, Добрый день! Попробовал убрал зачеркнутые строчки. Переписал, но ситуация не поменялась все рано после сработки скрипта надо проваливаться в фильтр и нажимать кнопку ОК. Вот ссылка на таблицу https://docs.google.com/spreads....sharing
function filtr() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange('C2').activate(); var criteria = SpreadsheetApp.newFilterCriteria() .setHiddenValues(['ЛОЖЬ']) .build(); spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(3, criteria); };
Gustav, Добрый день! Попробовал убрал зачеркнутые строчки. Переписал, но ситуация не поменялась все рано после сработки скрипта надо проваливаться в фильтр и нажимать кнопку ОК. Вот ссылка на таблицу https://docs.google.com/spreads....sharing
function filtr() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange('C2').activate(); var criteria = SpreadsheetApp.newFilterCriteria() .setHiddenValues(['ЛОЖЬ']) .build(); spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(3, criteria); };vserosinkas
Сообщение отредактировал vserosinkas - Пятница, 01.07.2022, 11:48
Давайте попробуем этот оператор переписать в "универсальном" формате, не зависящим от языковых настроек - с использованием всех возможных текстовых и булевского обозначений лжи: [vba]
Код
.setHiddenValues(['ЛОЖЬ','FALSE',false])
[/vba] У меня это возымело нужный эффект. Причем, когда я в процессе экспериментов использовал только одинокое булевское значение [false], то после этого с помощью "воронки" не получалось вернуться к полному набору записей, не удалив фильтр полностью (значение ЛОЖЬ отсутствовало в списке возможных значений). И есть ощущение, что это происходит только тогда, когда в ячейках отображаются русские значения ИСТИНА/ЛОЖЬ, т.е. когда в меню "Файл \ Настройки" НЕ включен флажок "Всегда использовать названия функций на английском языке". Когда же этот флажок включен и в ячейках отображаются английские значения TRUE/FALSE, то ваша кнопка "Фильтр" работает правильно и в случае булевского одинокого значения [false], и в случае текстового одинокого значения ['FALSE'].
Давайте попробуем этот оператор переписать в "универсальном" формате, не зависящим от языковых настроек - с использованием всех возможных текстовых и булевского обозначений лжи: [vba]
Код
.setHiddenValues(['ЛОЖЬ','FALSE',false])
[/vba] У меня это возымело нужный эффект. Причем, когда я в процессе экспериментов использовал только одинокое булевское значение [false], то после этого с помощью "воронки" не получалось вернуться к полному набору записей, не удалив фильтр полностью (значение ЛОЖЬ отсутствовало в списке возможных значений). И есть ощущение, что это происходит только тогда, когда в ячейках отображаются русские значения ИСТИНА/ЛОЖЬ, т.е. когда в меню "Файл \ Настройки" НЕ включен флажок "Всегда использовать названия функций на английском языке". Когда же этот флажок включен и в ячейках отображаются английские значения TRUE/FALSE, то ваша кнопка "Фильтр" работает правильно и в случае булевского одинокого значения [false], и в случае текстового одинокого значения ['FALSE'].Gustav