You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets宏脚本修改:重置过滤器时保留N14列手动配置

解决方案

调整逻辑说明

  • 原有RESET函数的核心问题是执行时会直接删除整张工作表的过滤器,所有列的自定义过滤配置都会被清空,因此需要在删除过滤器前提前备份N列(对应列序号为14,A列计为1)的过滤规则,过滤器重建完成后再把备份的规则回写至N列即可。
  • 原有RULEX函数仅修改D列(第4列)和E列(第5列)的过滤条件,完全未涉及N列,本身不会改动N列的过滤配置,无需调整。

修改后的完整脚本

function RESET() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  var nColumnCriteria = null;
  // 提前备份N列(第14列)现有过滤条件
  var existingFilter = sheet.getFilter();
  if (existingFilter) {
    nColumnCriteria = existingFilter.getColumnFilterCriteria(14);
  }
  
  spreadsheet.getRange('A1').activate();
  // 删除原有过滤器
  existingFilter.remove();
  spreadsheet.getRange('B14:O14').activate();
  var currentCell = spreadsheet.getCurrentCell();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
  currentCell.activateAsCurrentCell();
  currentCell = spreadsheet.getCurrentCell();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
  currentCell.activateAsCurrentCell();
  // 重建过滤器
  spreadsheet.getRange('B14:O926').createFilter();
  spreadsheet.getRange('H15:O100').activate();

  // 回写备份的N列过滤条件
  if (nColumnCriteria) {
    sheet.getFilter().setColumnFilterCriteria(14, nColumnCriteria);
  }
};

function RULEX() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('D14').activate();
  var criteria = SpreadsheetApp.newFilterCriteria()
  .whenTextEqualTo('Rule')
  .build();
  spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(4, criteria);
  spreadsheet.getRange('E14').activate();
  criteria = SpreadsheetApp.newFilterCriteria()
  .whenTextEqualTo('No')
  .build();
  spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
};

注意事项

  • 若后续你需要保留其他列的手动配置,只需参照N列的备份逻辑,新增对应列序号的备份和回写代码即可。
  • 确认表格实际数据范围和代码中B14:O926的过滤范围一致,若数据行数有变动可自行调整该参数。

内容的提问来源于stack exchange,提问作者Utku Aksu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 19:48:01