如何修改Google Sheets onEdit脚本,使其通过时间触发器修改工作表标签名
Google Sheets工作表名同步脚本修改方案
核心修改原因
原onEdit触发逻辑依赖编辑事件对象e获取触发位置、用户输入值,时间触发器无该事件参数,因此需要改为主动读取配置表固定单元格的值来批量更新工作表标签名。
具体修改内容
- 替换原
onEdit函数为自定义可绑定时间触发器的函数,无需接收e参数 - 移除所有基于
e对象的判断逻辑,改为直接读取CONTROL PANEL表指定单元格的当前值 - 顶部工作表实例定义部分无需修改
修改后完整代码
const ss = SpreadsheetApp.getActiveSpreadsheet() const sheet1 = ss.getSheetByName('CONTROL PANEL') const sheet2 = ss.getSheets()[1] const sheet3 = ss.getSheets()[2] const sheet4 = ss.getSheets()[3] const sheet5 = ss.getSheets()[4] const sheet6 = ss.getSheets()[5] const sheet7 = ss.getSheets()[6] const sheet8 = ss.getSheets()[7] const sheet9 = ss.getSheets()[8] function updateSheetNames() { // 直接读取对应单元格值修改工作表名 sheet2.setName(sheet1.getRange('B2').getValue()); sheet3.setName(sheet1.getRange('E2').getValue()); sheet4.setName(sheet1.getRange('B8').getValue()); sheet5.setName(sheet1.getRange('E8').getValue()); sheet6.setName(sheet1.getRange('B14').getValue()); sheet7.setName(sheet1.getRange('E14').getValue()); sheet8.setName(sheet1.getRange('B20').getValue()); sheet9.setName(sheet1.getRange('E20').getValue()); }
时间触发器配置操作
- 打开当前表格对应的Apps Script编辑器
- 点击左侧菜单栏「触发器」选项
- 点击右下角「添加触发器」按钮
- 选择要运行的函数为
updateSheetNames - 触发类型选择「时间驱动」,按需设置触发频率(每小时/每天等)后保存即可
内容的提问来源于stack exchange,提问作者Lonestar Dads
相关产品推荐
相关产品推荐

