You need to enable JavaScript to run this app. Google Sheets 实现单元格更新后自动隐藏/取消隐藏行的方法咨询
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets 实现单元格更新后自动隐藏/取消隐藏行的方法咨询

Google Sheets 自动隐藏/取消隐藏行功能实现方案

实现逻辑

直接使用Google Sheets内置的onEdit编辑触发事件,监听指定单元格的内容变更,匹配规则自动执行行显隐、内容清空、焦点跳转操作,无需额外按钮或手动配置流程。

功能对应关系

  • A3单元格内容更新时的触发动作:
    • 清空指定业务范围内所有已填写的字段内容
    • 批量隐藏工作表内除第9行外的所有行
  • 第9行完成有效录入(A9填写物料编码、B9填写对应数量)时的触发动作:
    • 自动取消隐藏第9行正下方的相邻行
    • 自动将编辑焦点跳转至A10单元格

可直接复用的脚本

打开对应表格的脚本编辑器,替换默认代码为以下内容即可生效:

function onEdit(e) {
  const activeSheet = e.source.getActiveSheet();
  const editedRange = e.range;
  const editRow = editedRange.getRow();
  const editCol = editedRange.getColumn();

  // 监听A3单元格更新
  if (editRow === 3 && editCol === 1) {
    // 清空业务区域的填写内容,可根据实际表格调整范围
    activeSheet.getRange("A2:B2000").clearContent();
    // 收集所有需要隐藏的行号,批量操作减少卡顿
    const totalRows = activeSheet.getMaxRows();
    const rowsToHide = [];
    for (let rowIndex = 1; rowIndex <= totalRows; rowIndex++) {
      if (rowIndex !== 9) rowsToHide.push(rowIndex);
    }
    activeSheet.hideRowsList(rowsToHide);
    // 强制保证第9行可见
    activeSheet.showRows(9);
    return;
  }

  // 监听第9行的录入操作
  if (editRow === 9) {
    // 校验A9、B9均已录入有效内容
    const a9Value = activeSheet.getRange("A9").getValue();
    const b9Value = activeSheet.getRange("B9").getValue();
    if (a9Value && b9Value) {
      // 取消隐藏第9行下方的相邻行
      activeSheet.showRows(10);
      // 跳转焦点至A10单元格
      activeSheet.getRange("A10").activate();
    }
  }
}

自定义调整提示

  • 代码中A2:B2000的清空范围可根据实际业务区域修改,避免误删固定表头、自动计算的公式内容
  • 如果需要取消隐藏连续多行,可修改showRows的参数,比如activeSheet.showRows(10, 5)代表从第10行开始,取消隐藏连续5行
  • 简单触发器默认仅对当前工作表生效,如果需要跨表触发逻辑,可在代码开头通过getSheetByName("工作表名称")指定目标操作对象

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 14:45:03