Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Фильтрация через кнопку (скрипт) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Фильтрация через кнопку (скрипт)
vserosinkas Дата: Суббота, 25.06.2022, 05:18 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Добрый день уважаемые форумчане!
Подскажите пожалуйста. У меня не срабатывает скрипт в ГУГЛ таблицах на фильтрацию через кнопку. Если просто руками фильтровать значение то он (фильтр) работает, а через кнопку после срабатывания скрипта приходится заходить в фильтр и нажимать кнопку ОК, тогда работает.
Необходимо, чтоб фильтр показывал все значения кроме ЛОЖЬ.
Скрипт вот такой:

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 - Суббота, 25.06.2022, 05:41
 
Ответить
СообщениеДобрый день уважаемые форумчане!
Подскажите пожалуйста. У меня не срабатывает скрипт в ГУГЛ таблицах на фильтрацию через кнопку. Если просто руками фильтровать значение то он (фильтр) работает, а через кнопку после срабатывания скрипта приходится заходить в фильтр и нажимать кнопку ОК, тогда работает.
Необходимо, чтоб фильтр показывал все значения кроме ЛОЖЬ.
Скрипт вот такой:

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
Дата добавления - 25.06.2022 в 05:18
Gustav Дата: Суббота, 25.06.2022, 14:02 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2809
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Я бы для начала удалил из скрипта зачеркнутые строки. С их помощью идёт попытка построить следующий фильтр (зачем-то), но при этом до .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]criteria = SpreadsheetApp.newFilterCriteria()
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(3, criteria);
[vba]
Код
spreadsheet.getRange('C1').activate();
};
[/vba]
Если не поможет, предоставьте доступ к расшаренной таблице-примеру - будем дальше смотреть что можно сделать.


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Суббота, 25.06.2022, 14:02
 
Ответить
СообщениеЯ бы для начала удалил из скрипта зачеркнутые строки. С их помощью идёт попытка построить следующий фильтр (зачем-то), но при этом до .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]criteria = SpreadsheetApp.newFilterCriteria()
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(3, criteria);
[vba]
Код
spreadsheet.getRange('C1').activate();
};
[/vba]
Если не поможет, предоставьте доступ к расшаренной таблице-примеру - будем дальше смотреть что можно сделать.

Автор - Gustav
Дата добавления - 25.06.2022 в 14:02
vserosinkas Дата: Пятница, 01.07.2022, 11:46 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

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 - Пятница, 01.07.2022, 11:48
 
Ответить
Сообщение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
Дата добавления - 01.07.2022 в 11:46
Gustav Дата: Воскресенье, 03.07.2022, 15:08 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2809
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
.setHiddenValues(['ЛОЖЬ'])
Давайте попробуем этот оператор переписать в "универсальном" формате, не зависящим от языковых настроек - с использованием всех возможных текстовых и булевского обозначений лжи:
[vba]
Код
.setHiddenValues(['ЛОЖЬ','FALSE',false])
[/vba]
У меня это возымело нужный эффект. Причем, когда я в процессе экспериментов использовал только одинокое булевское значение [false], то после этого с помощью "воронки" не получалось вернуться к полному набору записей, не удалив фильтр полностью (значение ЛОЖЬ отсутствовало в списке возможных значений). И есть ощущение, что это происходит только тогда, когда в ячейках отображаются русские значения ИСТИНА/ЛОЖЬ, т.е. когда в меню "Файл \ Настройки" НЕ включен флажок "Всегда использовать названия функций на английском языке". Когда же этот флажок включен и в ячейках отображаются английские значения TRUE/FALSE, то ваша кнопка "Фильтр" работает правильно и в случае булевского одинокого значения [false], и в случае текстового одинокого значения ['FALSE'].


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
.setHiddenValues(['ЛОЖЬ'])
Давайте попробуем этот оператор переписать в "универсальном" формате, не зависящим от языковых настроек - с использованием всех возможных текстовых и булевского обозначений лжи:
[vba]
Код
.setHiddenValues(['ЛОЖЬ','FALSE',false])
[/vba]
У меня это возымело нужный эффект. Причем, когда я в процессе экспериментов использовал только одинокое булевское значение [false], то после этого с помощью "воронки" не получалось вернуться к полному набору записей, не удалив фильтр полностью (значение ЛОЖЬ отсутствовало в списке возможных значений). И есть ощущение, что это происходит только тогда, когда в ячейках отображаются русские значения ИСТИНА/ЛОЖЬ, т.е. когда в меню "Файл \ Настройки" НЕ включен флажок "Всегда использовать названия функций на английском языке". Когда же этот флажок включен и в ячейках отображаются английские значения TRUE/FALSE, то ваша кнопка "Фильтр" работает правильно и в случае булевского одинокого значения [false], и в случае текстового одинокого значения ['FALSE'].

Автор - Gustav
Дата добавления - 03.07.2022 в 15:08
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!