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

如何使用Google Script在Google Sheets单元格为Faux时隐藏绘图

问题解决说明

原有代码报错及功能不生效的原因

  • 语法错误:var ez = s.getRange('B42') 行末尾缺少分号,导致解析器无法正确识别后续的if语句,抛出if is not defined报错
  • 取值错误:getRange('B42')获取的是单元格范围对象,不是单元格内的文本值,需要追加.getValue()方法才能拿到B42的内容
  • 字符串未加引号:判断条件里的Faux是文本值,需要用引号包裹,否则代码会将其识别为未定义的变量触发报错
  • 无效逻辑:你定义的student对象和隐藏绘图的需求无关,Google Sheets中隐藏自定义绘图需要调用对应绘图的setVisible()方法

修正后可直接使用的代码

function cacher1() {
  // 获取当前表格和工作表
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const activeSheet = ss.getActiveSheet();
  // 读取B42单元格的文本值
  const cellValue = activeSheet.getRange('B42').getValue();
  // 获取工作表内所有自定义绘图
  const allDrawings = activeSheet.getDrawings();
  
  // 判断B42值是否为"Faux"
  if (cellValue === "Faux") {
    // 遍历所有绘图,全部隐藏
    allDrawings.forEach(drawing => {
      drawing.setVisible(false);
    })
  } else {
    // 如果不需要非"Faux"时自动显示绘图,可删除整个else段
    allDrawings.forEach(drawing => {
      drawing.setVisible(true);
    })
  }
}

自动触发设置步骤

如果需要B42值变动时自动执行隐藏/显示逻辑,可按以下步骤设置触发器:

  1. 打开Google Sheets的Apps Script编辑器界面
  2. 点击左侧菜单的「触发器」选项(闹钟图标)
  3. 点击右下角「添加触发器」
  4. 选择要运行的函数为cacher1,事件来源选择「电子表格」,事件类型选择「编辑」,保存即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:39:05