javascript - 谷歌工作表中的脚本清除,但不删除过滤器

标签 javascript google-apps-script google-sheets

我在为 google 表格编写脚本方面是全新的,所以我希望你们中的一些人能帮助/指导我一点。

所以理想情况下,我想要一个脚本来清除(而不是删除)我工作表中的所有过滤器。然而,这对我来说很复杂(如果你们中的一些人有这样的脚本,我很乐意看到它:))

相反,我制作了这个(二手录音机):

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);
};

所以我的过滤器设置在第 5 行。首先我为所有列(我有 20 个)做了上面的操作,但问题是,代码非常慢 :( 所以现在我正在使用我使用的列最多,过滤时,但代码仍然很慢。最糟糕的是,代码一次运行一列(我们在代码中看到),当代码完成时,我最终进入最后一列。

我能做些什么吗?我不希望工作表窗口在运行代码时一直向右转,然后在 M 列结束。

我将不胜感激任何帮助! 谢谢

最佳答案

这是我的。该函数不会删除过滤器。相反,它会根据要求清除它们。

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')}
}

关于javascript - 谷歌工作表中的脚本清除,但不删除过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50956910/

相关文章:

javascript - 在类创建/追加时将计数器的值增加 1

javascript - 我怎样才能实现这个视频链接中显示的动画?

google-apps-script - DriveApp.makeCopy 没有生成 isGoogleType() 的 true 语句

javascript - 为什么使用FileReader读取文件内容时setState不起作用?

javascript - 在javascript递归函数中增加一个参数

google-apps-script - 在 Google Form 中使用 Google App Script 动态显示/隐藏表单项

javascript - Google Apps 脚本 - Gmail,永久删除垃圾桶中带有特定标签的电子邮件

javascript - 通过谷歌脚本提交表单

google-apps-script - 使用Google Apps脚本设置单元格格式

javascript - 我试图在大范围的特定单元格中挑选出所有带有 '1' 的行,是否有更有效的方法来做到这一点?