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
相关产品推荐
相关产品推荐

