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

如何修改Google Sheets脚本实现自定义菜单同时隐藏/显示两列?

修改后的Google Apps Script代码

以下是调整后的脚本,支持单次操作隐藏/显示两列:

/** @OnlyCurrentDoc */

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Show Next Season')
      .addItem('Hide Columns', 'hideCol')
      .addItem("Show Columns", 'show')
      .addToUi();
}

function hideCol() {
  const sheet = SpreadsheetApp.getActive().getSheetByName('Season by Season');
  const startCol = 20; // 对应表格中的T列
  const maxCol = sheet.getMaxColumns() - 4; // 保留原脚本的列范围限制

  // 从起始列开始查找第一个未隐藏的列
  for (let col = startCol; col <= maxCol; col++) {
    if (!sheet.isColumnHiddenByUser(col)) {
      // 计算要隐藏的列数(最多2列,不超出最大列限制)
      const colsToHide = Math.min(2, maxCol - col + 1);
      sheet.hideColumns(col, colsToHide);
      break;
    }
  }
}

function show() {
  const sheet = SpreadsheetApp.getActive().getSheetByName('Season by Season');
  const startCol = 20; // 对应表格中的T列
  const maxCol = sheet.getMaxColumns() - 4; // 保留原脚本的列范围限制

  // 从起始列开始查找第一个隐藏的列
  for (let col = startCol; col <= maxCol; col++) {
    if (sheet.isColumnHiddenByUser(col)) {
      // 计算要显示的列数(最多2列,不超出最大列限制)
      const colsToShow = Math.min(2, maxCol - col + 1);
      sheet.showColumns(col, colsToShow);
      break;
    }
  }
}

关键修改说明

  • 替换原脚本单次处理一列的逻辑,改为每次处理最多2列(若剩余可操作列不足2列,则处理剩余全部)
  • 使用hideColumns(col, numColumns)和showColumns(col, numColumns)方法,一次性操作多列,提升效率
  • 保留原脚本的列范围限制(从第20列开始,到maxColumns-4列结束)
  • 每次操作从第一个未隐藏/隐藏的列开始,连续处理两列,符合按年份顺序隐藏/显示的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 21:37:41