如何在创建Google Sheet时调用一次Google Apps Script函数?
Google Sheet 创建时仅执行一次的初始化解决方案
核心实现方案:可安装「创建」触发器 + 初始化函数
1. 编写初始化函数
打开目标Google Sheet,点击「扩展程序」→「Apps Script」,替换默认代码为以下内容:
function setSheetMonthYear() { const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 先检查A1是否为空,避免重复赋值 if (activeSheet.getRange("A1").getValue() === "") { const currentDate = new Date(); // 生成「月份+年份」格式(示例:"10-2024",可根据需求调整格式) const monthYearStr = `${currentDate.getMonth() + 1}-${currentDate.getFullYear()}`; activeSheet.getRange("A1").setValue(monthYearStr); } }
2. 配置专属「创建」触发器
在Apps Script编辑器中:
- 点击左侧的时钟图标(「触发器」面板)
- 点击「添加触发器」按钮
- 按以下选项配置:
- 选择函数:
setSheetMonthYear - 部署类型:
Head - 事件源:
从电子表格 - 事件类型:
创建
- 选择函数:
- 保存并完成权限授权
为什么之前的方法失效?
- 单元格调用函数:自定义单元格函数会随表格重算(打开、编辑内容)自动触发,无法做到仅执行一次。
- 标准触发器:你大概率选错了事件类型——标准的「打开」触发器是每次打开表格都执行,而「创建」触发器是仅在表格首次创建时运行一次,属于可安装触发器的专属事件,默认标准触发器列表里找不到这个选项,必须手动添加可安装触发器。
内容的提问来源于stack exchange,提问作者Gadek
相关产品推荐
相关产品推荐

