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

Google Apps Script工作日办公时段每15分钟运行报错求助

解决方法

错误根源很明确:你创建的是每15分钟运行的时间驱动触发器,这种触发器不会向Record函数传递包含day-of-week、hour的事件参数e,直接访问e['day-of-week']自然会报「无法读取undefined属性」的错误。

不需要依赖触发器传参,直接在Record函数里主动获取当前时间来判断是否符合办公时段即可,修正后的代码如下:

function Record() {
  const now = new Date();
  const dayOfWeek = now.getDay(); // 0=周日, 1=周一, 2=周二, ..., 6=周六
  const hour = now.getHours();
  
  // 判断:周一到周五(1-5),且小时在8点到17点之间(原代码是>8且<17,即9点到16点,可按需调整)
  if (dayOfWeek >= 1 && dayOfWeek <=5 && hour >=8 && hour <17) {
    SpreadsheetApp.getUi().alert("Alert message");
  }
}

// 只创建一个对应Record函数的触发器
function createTimeBasedTrigger() {
  const existingTriggers = ScriptApp.getProjectTriggers().filter(t => t.getHandlerFunction() === "Record");
  if (existingTriggers.length === 0) {
    ScriptApp.newTrigger("Record").timeBased().everyMinutes(15).create();
  }
}

补充说明

  • 时区校验:确保脚本的时区和你预期的办公时段时区一致,可在脚本编辑器右上角的「设置」(齿轮图标)里查看和调整。
  • 时段微调:如果需要包含17点整,把hour <17改成hour <=17;若要从8点整开始执行,保留hour >=8即可,原代码的hour>8是从9点开始生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:41:19