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

如何在Apps Script中为数组指定索引设置值?(Google Sheets开发)

问题分析与修正方案

你的代码报错核心原因是把Range对象当成数组直接索引——resources是Range实例,不是数组,所以resources[i][0]会触发undefined错误。另外,循环里重复调用getValues()会频繁和服务器交互,既低效又容易出问题。

修正后的代码

function longRest() {
  var mainSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Main");
  // 一次性读取F36:G44的所有值到二维数组
  var values = mainSheet.getRange('F36:G44').getValues();
  
  // 遍历每一行数据
  for (var i = 0; i < values.length; i++) {
    // 检查G列对应行(数组索引[i][1])的值是否非空
    if (values[i][1] !== "") {
      // 将G列的值赋值给F列对应行(数组索引[i][0])
      values[i][0] = values[i][1];
    }
  }
  
  // 将修改后的数组一次性写回原单元格区域
  mainSheet.getRange('F36:G44').setValues(values);
}

关键说明

  1. 先读再改再写:通过getValues()把单元格数据读进内存数组,修改数组后用setValues()一次性写回,减少服务器交互次数,提升性能。
  2. 数组索引对应关系:values[i][0]对应F列第i+36行,values[i][1]对应G列第i+36行(数组从0开始计数)。
  3. 严格判空:用!== ""代替!= "",避免把null或其他空值误判为有效内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 23:25:23