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

如何调整Google Sheets筛选脚本以支持多工作表?

解决Google Apps Script多工作表筛选问题

以下是修改后的脚本,支持在任意激活的工作表中执行筛选和显示操作:

function onOpen() {
  SpreadsheetApp.getUi().createMenu("Custom Filter")
    .addItem("筛选行", "filterRows")
    .addItem("显示所有行", "showAllRows")
    .addToUi();
}

function filterRows() {
  // 获取当前激活的工作表
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = sheet.getDataRange().getValues();
  // 从第2行开始遍历(跳过表头)
  for(var i = 1; i < data.length; i++) {
    // 检查第11列(索引10)的复选框状态
    if(data[i][10] === true) {
      sheet.hideRows(i + 1);
    }
  }
}

function showAllRows() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.showRows(1, sheet.getMaxRows());
}

修改说明

  • 动态获取工作表:用getActiveSheet()替代原来的getSheetByName("Warehouse_1"),脚本会自动识别当前用户正在查看的工作表,无需为每个仓库工作表单独编写重复代码。
  • 解决菜单冲突:原脚本复制后函数名重复,导致菜单只会调用最后定义的函数。现在统一一套函数逻辑,所有工作表共用同一个菜单,点击时仅作用于当前激活表。
  • 优化交互:将菜单项文字改为中文,操作更直观。

内容的提问来源于stack exchange,提问作者Vadim Kushkunov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:15:00