首页 > 解决方案 > 谷歌工作表脚本 - 将行值复制到最后使用的行

问题描述

基本上我需要帮助将第 2 行的内容复制到最后使用的行范围 A2:AC2 (如果复制粘贴整个第 2 行则不是问题)

我已经有一个脚本可以将行追加到最后一个未使用的行,我想要的是不必手动编辑它,以防我需要更新这些值

找到了一个脚本来获取最后使用的行,但它返回行号

function getLRI() {
  
  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Fund');

  var lr = getLastRowIndex(ss,'A1:AC');
  
  Logger.log (lr);

}


function getLastRowIndex(sheet,rangeString) {

  var rng = sheet.getRange(rangeString).getValues();
  
  var lrIndex;
  
  for ( var i = rng.length-1;i>=0;i--){
    lrIndex = i;
    
    if(!rng[i].every(function(c){ return c == ""; })){
      break;
    
    }
    
  }
  
  return lrIndex + 1;
  
}

的输出Logger.log (lr)

[20-10-30 16:35:33:460 BRT] 47.0

所以我得到了正确的行号,但没有设法弄清楚在这种情况下如何制作.getRange().setValues工作

标签: javascriptarraysgoogle-apps-scriptgoogle-sheets

解决方案


解释:

解决方案比您想象的要简单得多。


解决方案:

function myFunction() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName('Fund');
  const data = sh.getRange(2,1,1,29).getValues(); // A2:AC2
  sh.getRange(sh.getLastRow()+1,1,data.length,data[0].length).setValues(data);
}

推荐阅读