Lea*_*ipt 5 javascript google-sheets google-apps-script
我在为谷歌表格编写脚本方面是全新的,所以我希望你们中的一些人可以帮助/指导我一点。
所以理想情况下,我想要一个脚本来清除(而不是删除)我的工作表中的所有过滤器。然而,这对我来说很复杂(如果你们中的一些人有这样的脚本,我很想看到它:))
相反,我做了这个(二手录音机):
function Clear_Filter() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A5').activate();
spreadsheet.getActiveSheet().getFilter().removeColumnFilterCriteria(1);
spreadsheet.getRange('B5').activate();
spreadsheet.getActiveSheet().getFilter().removeColumnFilterCriteria(2);
spreadsheet.getRange('C5').activate();
spreadsheet.getActiveSheet().getFilter().removeColumnFilterCriteria(3);
spreadsheet.getRange('G5').activate();
spreadsheet.getActiveSheet().getFilter().removeColumnFilterCriteria(7);
spreadsheet.getRange('J5').activate();
spreadsheet.getActiveSheet().getFilter().removeColumnFilterCriteria(10);
spreadsheet.getRange('M5').activate();
spreadsheet.getActiveSheet().getFilter().removeColumnFilterCriteria(13);
};
Run Code Online (Sandbox Code Playgroud)
所以我的过滤器设置在第 5 行。首先,我对所有列(我有 20 个)进行了上述操作,但问题是,代码非常慢:(所以现在我正在使用我最常使用的列,过滤时,但代码仍然很慢。最糟糕的是,代码一次运行一列(我们在代码中看到),当代码完成时,我最终进入最后一列。
我可以做点什么吗?当我运行代码时,我不希望我的工作表窗口不断右转,然后最终出现在 M 列中。
我将不胜感激任何帮助!谢谢
小智 8
这是我的。该函数不会删除过滤器。相反,它会根据请求清除它们。
function clearFilter(sheet) {
sheet = SpreadsheetApp.getActiveSheet(); //for testing purpose only
var filter = sheet.getFilter();
if (filter !== null) { // tests if there is a filter applied
var range = filter.getRange(); // prevents exception in case the filter is not applied to all columns
var firstColumn = range.getColumn();
var lastColumn = range.getLastColumn();
for (var i = firstColumn; i < lastColumn; i++) {
filter.removeColumnFilterCriteria(i);
}
Logger.log('All filters cleared')
}
else {Logger.log('There is no filter')}
}
Run Code Online (Sandbox Code Playgroud)
小智 -2
我,你试过吗:
function Clear_Filter() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getFilter().remove();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5298 次 |
| 最近记录: |