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

Google脚本编辑器:让脚本排除指定工作表运行

修改Google脚本以排除指定工作表

要避免脚本修改指定的主数据源工作表,只需在函数开头添加工作表名称判断逻辑,当当前活动工作表属于排除列表时,直接终止函数执行即可。以下是修改后的完整脚本:

function onSelectionChange(e) {
  // 定义需要排除的工作表名称,可根据实际情况修改(支持多个表)
  const excludedSheets = ["主数据源"];
  const activeSheet = SpreadsheetApp.getActiveSheet();
  const sheetName = activeSheet.getName();

  // 如果当前工作表在排除列表中,直接终止函数
  if (excludedSheets.includes(sheetName)) {
    return;
  }

  const phData = [
    {c: "G4", ph: "Placeholder TASK 1"},
    {c: "H4", ph: "Placeholder TASK 2"},
    {c: "I4", ph: "Placeholder TASK 3"},
    {c: "J4", ph: "Placeholder TASK 4"},
    {c: "K4", ph: "Placeholder TASK 5"},
    {c: "L4", ph: "Placeholder TASK 6"},
    {c: "M4", ph: "Placeholder TASK 7"},
    {c: "N4", ph: "Placeholder TASK 8"},
    {c: "O4", ph: "Placeholder TASK 9"},
    {c: "P4", ph: "Placeholder TASK 10"},
    {c: "Q4", ph: "Placeholder TASK 11"},
    {c: "R4", ph: "Placeholder TASK 12"},
    {c: "S4", ph: "Placeholder TASK 13"},
    {c: "T4", ph: "Placeholder TASK 14"},
    {c: "U4", ph: "Placeholder TASK 15"},
    {c: "V4", ph: "Placeholder TASK 16"},
    {c: "W4", ph: "Placeholder TASK 17"},
    {c: "X4", ph: "Placeholder TASK 18"},
    {c: "Y4", ph: "Placeholder TASK 19"},
    {c: "Z4", ph: "Placeholder TASK 20"},
    {c: "AA4", ph: "Placeholder TASK 21"},
    {c: "AB4", ph: "Placeholder TASK 22"},
    {c: "AC4", ph: "Placeholder TASK 23"},
    {c: "AD4", ph: "Placeholder TASK 24"},
    {c: "AE4", ph: "Placeholder TASK 25"},
    {c: "AF4", ph: "Placeholder TASK 26"},
    {c: "AG4", ph: "Placeholder TASK 27"},
    {c: "AH4", ph: "Placeholder TASK 28"},
    {c: "AI4", ph: "Placeholder TASK 29"},
    {c: "AJ4", ph: "Placeholder TASK 30"},
    {c: "AK4", ph: "MERIT CRITERIA 1"},
    {c: "AL4", ph: "MERIT CRITERIA 2"},
    {c: "AM4", ph: "MERIT CRITERIA 3"},
    {c: "AN4", ph: "MERIT CRITERIA 4"},
    {c: "AO4", ph: "EXCELLENCE CRI 1"},
    {c: "AP4", ph: "EXCELLENCE CRI 2"},
    {c: "AQ4", ph: "EXCELLENCE CRI 3"},
    {c: "AR4", ph: "EXCELLENCE CRI 4"}
  ];

  phData.forEach((placeholders) => {
    const observedRange = activeSheet.getRange(placeholders.c);
    const clickedRange = e.range.getA1Notation();
    if (clickedRange === placeholders.c && observedRange.getValue() === placeholders.ph) {
      observedRange.setValue("");
    }
    if (clickedRange !== placeholders.c && observedRange.getValue() === "") {
      observedRange.setValue(placeholders.ph);
    }
  });
}

关键修改说明

  • 排除列表定义:通过excludedSheets数组指定需要跳过的工作表,多个表可写成["主数据源", "历史归档表"]格式
  • 提前终止逻辑:判断当前工作表名称是否在排除列表中,若是则直接返回,不执行后续占位符处理代码
  • 代码优化:将重复调用的SpreadsheetApp.getActiveSheet()存为变量,减少API调用次数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 20:25:16