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

如何点击B1复选框在Google Sheets中仅显示当日列并隐藏其余列?

Google Sheets脚本求助:点击复选框仅显示当日对应列

我是Google Sheets及编程新手,折腾好几天都没解决这个问题,求帮忙。需求是:点击B1单元格的复选框后,当前工作表只显示当天对应的列(比如7月12日显示A、B、L、M、N列),隐藏其他所有列。搜过类似方案反复改脚本,都没用。

工作表列布局参考:
工作表列布局示例

示例表格可通过Google Sheets文档访问(文档ID:1sJD-JPLDi-kFkGq7p8BO5X51yXNKx8MfZaciH14jfn0,工作表gid=0)


解决方案

步骤1:编写触发脚本

  1. 打开目标Google Sheets,点击顶部菜单栏「扩展程序」→「Apps脚本」
  2. 删除编辑器里的默认代码,粘贴以下脚本:
function toggleDailyColumns() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const checkbox = sheet.getRange("B1");
  const isChecked = checkbox.isChecked();

  // 取消勾选时恢复显示所有列
  if (!isChecked) {
    sheet.showColumns(1, sheet.getLastColumn());
    return;
  }

  // 获取今日日期(格式:月份/日期,如"7/12")
  const today = new Date();
  const todayKey = `${today.getMonth() + 1}/${today.getDate()}`;

  // 配置各日期对应的显示列,按需修改
  const dateColumnConfig = {
    "7/12": ["A", "B", "L", "M", "N"],
    // 可添加更多日期配置,示例:
    // "7/13": ["A", "B", "O", "P", "Q"]
  };

  // 确定要显示的列,无匹配时默认显示A、B列
  const targetColumns = dateColumnConfig[todayKey] || ["A", "B"];

  // 先隐藏所有列
  sheet.hideColumns(1, sheet.getLastColumn());

  // 逐一显示指定列
  targetColumns.forEach(col => {
    const colIndex = sheet.getRange(col + "1").getColumn();
    sheet.showColumns(colIndex);
  });
}
  1. 点击编辑器顶部的保存按钮,给脚本命名(比如「DailyColumnToggle」)

步骤2:绑定复选框与脚本

  1. 返回工作表,右键点击B1单元格的复选框,选择「分配脚本」
  2. 输入toggleDailyColumns(注意大小写完全一致),点击「确定」

注意事项

  • 请根据你的实际需求,修改dateColumnConfig中的日期和对应列配置
  • 脚本首次运行时,会要求授权,按照提示完成授权即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:12:06