首页 > 解决方案 > 如何将 FOR LOOP 添加到此 Google 脚本代码中?

问题描述

此脚本将 SHEET1 中的数据块复制并粘贴到 SHEET2 中的最后一行 + 1。

我想添加一个循环,以便对于 SHEET 1 中的每一行数据,我可以在 SHEET2 中指定目标行,而不是块粘贴到最后一行 + 1。

例如,我在范围 A1:E6 的 SHEET1 中有 5 行数据。

因此,如果目标行指定为 50,则该行将覆盖 Sheet2 中第 50 行的数据。

下一行数据指定目标第 73 行,以便将数据行存放在 Sheet2 中的第 73 行,依此类推...

function dataTransfer1() {
  var ss = SpreadsheetApp.getActive(); //source sheet/this sheet
  var tss = SpreadsheetApp.openById("oweoeIE8373JDJudjd8383Iwejfi83"); //destination sheet ID

  var sh = ss.getSheetByName("ADD MISS 7") //name of subsheet w/in source sheet
  var tsh = tss.getSheetByName("JR") //name of subsheet w/in destination sheet
  var rowDestination = tsh.getLastRow()+1;
  var numRows = ss.getRange("A1").getValues();

  var copyRange = sh.getRange(2,14,numRows,5).getValues(); //source range
  var dumpRange = tsh.getRange(rowDestination,1,numRows,5); //destination range
   
 
  
  dumpRange.setValues(copyRange);




}

标签: google-apps-scriptgoogle-sheets

解决方案


function dataTransfer1() {
  var ss = SpreadsheetApp.getActive(); //source sheet/this sheet
  var tss = SpreadsheetApp.openById("oweoeIE8373JDJudjd8383Iwejfi83"); //destination sheet ID

  var sh = ss.getSheetByName("ADD MISS 7") //name of subsheet w/in source sheet
  var tsh = tss.getSheetByName("JR") //name of subsheet w/in destination sheet

  var values = sh.getDataRange().getValues();
  var trange = tsh.getRange(1, 14, tsh.getLastRow(), 5);
  var tvalues = trange.getValues();

  for (const value of values) {
    const i = value[5] - 1;
    tvalues[i] = value.slice(0, -1);
  }
  trange.setValues(tvalues);
}

推荐阅读