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

Google Apps Script onEdit调用列显隐双函数 第二个脚本失效咨询

问题排查与修复方案

核心错误原因

  • 你在onEdit2中使用了首字母大写的True,而JavaScript/Google Apps Script的布尔值常量为全小写的true和false,大写的True会被识别为未定义变量,直接触发代码报错,导致整个函数终止运行。

其他潜在问题修复建议

  • 增加工作表存在性判断:如果指定的工作表名称不存在,getSheetByName会返回null,直接调用方法会报错打断执行,建议添加非空判断再执行后续逻辑。
  • 可选性能优化:当前两个函数每次编辑都会遍历所有指定工作表,你可以结合onEdit的事件对象,仅处理当前编辑的工作表,减少不必要的性能消耗,该优化不影响功能运行,可按需调整。

修复后的完整代码

function onEdit() {
  onEdit1();
  onEdit2();
}

function onEdit1() // Original Script
{
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
["Calc", "Sheet1", "Sheet2", "Sheet3","Sheet4"].forEach(function (s) { 
  var sheet = ss.getSheetByName(s);
  if(!sheet) return; // 跳过不存在的工作表
  var st = sheet.getRange("B2").getValue();
  if(st == false)
  {
      sheet.hideColumn(sheet.getRange("W:Z")); 
      sheet.hideColumn(sheet.getRange("AA:AK"));
      sheet.hideColumn(sheet.getRange("AL:AN"));
      sheet.hideColumn(sheet.getRange("AO:AO"));
      sheet.hideColumn(sheet.getRange("AP:AP"));
  }
  else
  {
      sheet.unhideColumn(sheet.getRange("W:Z"));
      sheet.unhideColumn(sheet.getRange("A:K"));
      sheet.unhideColumn(sheet.getRange("AL:AN"));
      sheet.unhideColumn(sheet.getRange("AO:AO"));
      sheet.unhideColumn(sheet.getRange("AP:AP"));  
  }
})}

function onEdit2() /// 2nd script
{
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
["Duo","Sheet1","Sheet2"].forEach(function (s) { 
  var sheet = ss.getSheetByName(s);
  if(!sheet) return; // 跳过不存在的工作表
  var st = sheet.getRange("AC5").getValue();
  if(st == true) // 修复布尔值大小写问题
  {
      sheet.unhideColumn(sheet.getRange("AU:BH"));
  }
  else
  {
      sheet.hideColumn(sheet.getRange("AU:BH"));
  }
})}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:00:04