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

Google表格自动隐藏列:第69行值为True时自动隐藏对应列

解决Google表格自动隐藏列的脚本问题

原脚本的问题分析

  • getValues() 返回的是二维数组结构,第69行的取值应该是 val[0][j] 而非 val[j](val 实际是 [[单元格1值, 单元格2值,...]] 这样的格式)
  • getRange(row, column) 的列索引从1开始,原循环中j从0起步会调用无效的列索引0

修正后的脚本

function autohide() {
  const sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('name list');
  // 读取第69行所有有内容的列,直接转为一维数组
  const rowValues = sheet1.getRange(69, 1, 1, sheet1.getLastColumn()).getValues()[0];
  for (let j = 0; j < rowValues.length; j++) {
    // 严格匹配布尔类型的true,避免文本或其他值误触发
    if (rowValues[j] === true) {
      // 列索引+1,对应表格的实际列位置
      sheet1.hideColumn(sheet1.getRange(69, j + 1));
    }
  }
}

额外优化与自动触发设置

如果需要在编辑第69行时自动执行隐藏操作,可添加编辑触发器函数:

function onEdit(e) {
  // 仅当编辑区域是第69行时触发
  if (e.range.getRow() === 69) {
    autohide();
  }
}

设置步骤:在脚本编辑器中点击「编辑」→「当前项目的触发器」,添加一个触发器,选择onEdit函数,事件源设为「从电子表格」,事件类型设为「编辑时」。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:03:16