如何让脚本提取谷歌表格中的指定日期而非当前系统日期?
解决Google脚本提取表格已有日期而非当前日期的问题
问题核心
你当前的代码会生成并写入触发脚本当日的系统日期到表格A2,再将该系统日期替换到Google Doc中。但你需要的是读取表格内已录入的关联日期,避免邮件延迟发送时显示错误日期。
错误原因
你尝试替换的date变量,实际是sheet1.getRange('a2').setValue(...)返回的Range单元格对象,而非具体日期值,因此Google Doc中会显示"Range."。
解决方案
修改代码逻辑,从表格中读取已存在的日期值,格式化后再替换到Doc中:
读取表格中的已有日期
替换原设置日期的代码,改为读取A2单元格的日期值:// 读取表格A2单元格的日期值 var dateValue = sheet1.getRange('a2').getValue(); // 格式化日期为目标格式(如MM-dd-yyyy) var formattedDate = Utilities.formatDate(dateValue, "GMT", "MM-dd-yyyy");若A2单元格已是格式化好的文本日期,可直接读取显示文本:
var formattedDate = sheet1.getRange('a2').getDisplayValue();替换Google Doc中的日期占位符
保持后续替换代码不变,使用读取并格式化后的formattedDate:body.replaceText("{{Date}}", formattedDate);
完整修改示例
将原有相关代码替换为:
// 读取表格内已录入的日期并格式化 var dateValue = sheet1.getRange('a2').getValue(); var formattedDate = Utilities.formatDate(dateValue, "GMT", "MM-dd-yyyy"); // 替换Google Doc中的日期占位符 body.replaceText("{{Date}}", formattedDate);
这样无论何时触发邮件,都会读取表格中预先录入的关联日期,不再使用触发当日的系统日期。
内容的提问来源于stack exchange,提问作者user23626820
相关产品推荐
相关产品推荐

