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

Google Sheets脚本调用setValues时报ReferenceError: Daysarr未定义如何解决

问题原因
  • 变量名大小写拼写错误:JavaScript 是大小写敏感的编程语言,你代码中声明的变量为 DaysArr(第二个单词首字母A大写),但最后调用 setValues 方法时写的是 Daysarr(第二个单词首字母a小写),因此程序判定该变量未定义,触发报错。
  • 隐含维度不匹配问题:Google Sheets 的 setValues() 方法要求传入的二维数组结构,与选中的写入范围的行列数完全对应。你当前构造的 DaysArr 是 1 行 5 列的结构 [[95.0, 529.0, 382.0, 200.0, 180.0]],但你选中的写入范围 AA2:AA6 是 5 行 1 列,仅修正变量名后仍会触发维度不匹配的报错。
修正后代码
function myFunction() {
  var Date1 = new Date(); // 获取当前日期
  var Sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var arr = Sheet.getRange("AB2:AB6").getValues(); // 读取入职日期列
  var Rowlimit = arr.length;
  var DaysArr = []; // 调整初始化方式,按行存储结果适配单列写入
  for(i = 0 ; i< Rowlimit; i++)
  {
    var TodayTime = Date1.getTime();
    var RecDayTime =  (new Date(arr[i][0])).getTime(); // 将字符串格式的日期转为时间戳
    var DaysBetween = Math.abs(Math.floor((TodayTime-RecDayTime)/(24*3600*1000))); // 计算两个日期的间隔天数
    Logger.log(DaysBetween);
    DaysArr.push([DaysBetween]); // 每个结果单独作为一行
  }
  Logger.log(DaysArr);
  
  Logger.log(DaysArr[0]);
  Sheet.getRange("AA2:AA6").setValues(DaysArr); // 修正变量名大小写
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:06:05