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

如何使用Google Apps Script实现Google Sheets复选框控行隐藏及重置

Google Sheets 手游套装成本计算工具GAS实现代码

你可以先把重置功能的复选框放在H17单元格(可根据你的需要调整代码里的单元格坐标),下面是完整可直接使用的onEdit触发器代码:

function onEdit(e) {
  // 获取当前表格和第一个工作表
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheets()[0];
  // 配置项:可根据你的实际表格调整参数
  const CONFIG = {
    // 控制隐藏已集齐套装的复选框位置
    hideCompleteCell: 'H16',
    // 重置功能的复选框位置
    resetCell: 'H17',
    // 统计的最大行数,可根据你的套装总数量调整
    maxRow: 100,
    // 复选框所在列范围:B到F对应列号2到6
    checkboxColStart: 2,
    checkboxColEnd: 6
  };
  // 获取本次编辑的单元格位置
  const editedRange = e.range;
  const editedA1 = editedRange.getA1Notation();

  // 触发逻辑1:编辑了隐藏已集齐套装的控制复选框
  if (editedA1 === CONFIG.hideCompleteCell) {
    const isHideChecked = editedRange.getValue() === 'Yes';
    if (isHideChecked) {
      // 遍历所有套装行,默认第一行是表头,从第2行开始遍历
      for (let row = 2; row <= CONFIG.maxRow; row++) {
        // 获取当前行B到F列的所有复选框值
        const rowValues = sheet.getRange(row, CONFIG.checkboxColStart, 1, CONFIG.checkboxColEnd - CONFIG.checkboxColStart + 1).getValues()[0];
        // 判断是否所有复选框都是Yes(即套装已集齐)
        const isComplete = rowValues.every(val => val === 'Yes');
        if (isComplete) {
          sheet.hideRows(row);
        } else {
          sheet.showRows(row);
        }
      }
    } else {
      // 未勾选时显示所有行
      sheet.showRows(1, CONFIG.maxRow);
    }
    return;
  }

  // 触发逻辑2:编辑了重置复选框
  if (editedA1 === CONFIG.resetCell) {
    const isResetChecked = editedRange.getValue() === 'Yes';
    if (isResetChecked) {
      // 1. 把所有B到F列的复选框设为No(未勾选)
      const checkboxRange = sheet.getRange(2, CONFIG.checkboxColStart, CONFIG.maxRow - 1, CONFIG.checkboxColEnd - CONFIG.checkboxColStart + 1);
      checkboxRange.setValue('No');
      // 2. 显示所有隐藏的行
      sheet.showRows(1, CONFIG.maxRow);
      // 3. 自动把重置复选框恢复为未勾选状态,方便下次使用
      editedRange.setValue('No');
    }
    return;
  }
}

使用说明

  • 把上述代码替换你原来的脚本代码后保存即可,不需要额外设置触发器,onEdit是GAS内置的编辑触发函数,你修改表格内容时会自动运行
  • 如果你的表格表头不是1行、或者复选框列、控制单元格位置有变化,直接修改代码开头CONFIG里的对应参数即可
  • 如果你的表格第一行就是套装数据,把遍历的起始行row = 2改成row = 1即可

内容的提问来源于stack exchange,提问作者Daniel De Haas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:54:03