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

如何将Google Sheet主表指定行范围数据同步至另一表格指定行范围?

修正Google Apps Script实现Sheet数据一一对应同步

需求说明

从指定Google Sheet主表的O列提取数据,写入到另一Sheet目标表的R列,要求:

  • 主表:ID 1EzemDPlSwWo5SJsJkePbPUlrOh-BoCa9svu9i85uZfQ,工作表名 CLASS I FORMATIVE(A.N),提取行号为**4、9、14…(从第4行开始每5行)**的O列数据
  • 目标表:ID 1hdbT-g2gDdLVng6jMieOULgjWlPlRckl8sUS_UGJroQ,工作表名 REPORT CARD FOR ALL CLASS 2023,写入行号为**7、12、17…(从第7行开始每5行)**的R列,需实现源数据与目标行一一对应

原代码问题

原代码使用嵌套循环,外层每获取一个源数据,内层就遍历所有目标行赋值,导致所有目标行最终被最后一个源数据覆盖,无法实现一一对应。原代码如下:

function myFunction() {
var An = SpreadsheetApp.openById("1EzemDPlSwWo5SJsJkePbPUlrOh-BoCa9svu9i85uZfQ");
 var GetSa1 =An.getSheetByName("CLASS I  FORMATIVE(A.N)");
var Fs = SpreadsheetApp.openById("1hdbT-g2gDdLVng6jMieOULgjWlPlRckl8sUS_UGJroQ");
 var GetFh1 =Fs.getSheetByName("REPORT CARD FOR ALL CLASS 2023");
 
 var Ps1 =[];
for(var i = 4;i<=44;i=i+5){
  Ps1=(GetSa1.getRange("O"+[i]).getValue());
Logger.log( Ps1);
for(var j=7;j<=44;j=j+5){ 
 GetFh1.getRange("R"+[j]).setValue(Ps1);

      }
    }
}

修正后的代码

通过同步递增源行和目标行的方式,确保每一组数据一一对应写入:

function myFunction() {
  // 打开源表和目标表
  var sourceSpreadsheet = SpreadsheetApp.openById("1EzemDPlSwWo5SJsJkePbPUlrOh-BoCa9svu9i85uZfQ");
  var sourceSheet = sourceSpreadsheet.getSheetByName("CLASS I  FORMATIVE(A.N)");
  
  var targetSpreadsheet = SpreadsheetApp.openById("1hdbT-g2gDdLVng6jMieOULgjWlPlRckl8sUS_UGJroQ");
  var targetSheet = targetSpreadsheet.getSheetByName("REPORT CARD FOR ALL CLASS 2023");
  
  // 初始化起始行号
  let sourceRow = 4;
  let targetRow = 7;
  
  // 循环处理对应行,直到任一表的行号超过44
  while (sourceRow <= 44 && targetRow <= 44) {
    // 获取源表O列数据
    const cellValue = sourceSheet.getRange(`O${sourceRow}`).getValue();
    // 写入目标表R列对应行
    targetSheet.getRange(`R${targetRow}`).setValue(cellValue);
    
    // 行号同步递增5,处理下一组对应行
    sourceRow += 5;
    targetRow += 5;
  }
}

关键改动说明

  • 移除嵌套循环,改用同步递增行号的方式,保证每一个源数据仅写入对应的目标行
  • 变量名重命名为更具语义的名称,提升代码可读性
  • 增加边界判断,避免行号超出指定范围(≤44)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:30:21