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

Google Apps Script无法定位工作表特定单元格的问题排查与解决

错误原因

  1. 最核心的问题是调用方法的对象类型错误:你在写入上月工作表单元格时,使用了字符串类型的prevSheetName调用getRange()方法,这个变量只存了工作表名称的文本内容,不是工作表实例对象,调用方法会直接报错,自然没法写入数据。你前面已经通过ss.getSheetByName(prevSheetName)拿到了正确的工作表实例targetS,直接用这个对象调用getRange()就行。
  2. 原有逻辑冗余:你把targetDate.includes("/16")的判断放在了遍历目标工作表行的for循环里,每遍历一行就重复执行一次赋值操作,完全没必要,还会拖慢脚本运行速度。

补充说明

你后续补充的修复代码已经解决了核心的对象调用错误,把判断条件调整为同时匹配行日期和目标日期的16日场景,且使用正确的工作表实例调用方法,所以功能可以正常运行。
如果想要从根源解决日期偏移1天的问题,可以统一脚本和表格的时区:出现日期偏移本质是Utilities.formatDate的时区参数和表格默认时区不一致导致的,把时区替换为表格本身的时区即可:

const timeZone = SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetTimeZone();
// 后续所有formatDate都用这个timeZone变量代替固定写死的"JST"
var targetDate = Utilities.formatDate(atvc.offset(1, -5).getValue(), timeZone, "yyyy/MM/dd");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:57:04