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

Google Sheets脚本:自动添加日期后公式计算日期差异常求助

问题解决方法

你的问题出在直接将Range对象拼接到公式字符串里,Range对象转成字符串后会显示"Range",而非单元格的引用地址。只需修改公式拼接的部分,同时优化日期的写入方式确保计算正常:

修改后的代码

if(e.range.columnStart === 1 && e.range.rowStart >= 2) {
    const currentDate = new Date();
    const dateCell = e.range.offset(0,9);
    // 设置单元格为日期格式,写入原生日期对象确保可计算
    dateCell.setNumberFormat("MM/dd/yyyy");
    dateCell.setValue(currentDate);
    const daysSince = e.range.offset(0,10);
    // 用getA1Notation()获取单元格的A1格式引用(如J2)
    daysSince.setFormula(`=TODAY()-${dateCell.getA1Notation()}`);
}

关键修改点

  • 获取正确的单元格引用:使用dateCell.getA1Notation()替代直接拼接Range对象,该方法会返回单元格的A1格式地址(比如J2),让公式能正确指向目标单元格。
  • 优化日期写入方式:原代码写入的是格式化后的字符串,可能导致单元格变为文本类型影响计算。改为写入原生Date对象并设置单元格日期格式,确保单元格存储的是可计算的日期值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 00:23:17