首页 > 解决方案 > 使用应用脚本在确定列的最后一行插入值

问题描述

我需要复制某一列最后一行的值,我看到了这样的例子...... Stackoverflow 但他们没有为我提供我的脚本。我遇到的问题是,在列中A我有五个值,在列中BC我只有一个这样的......
A B C
1 1 1
1 - -
1 - -
1 - -
1 - -
我想在列中插入值,B就像C这样......
A B C
1 1 1
1 2 2
1 2 2
1 - -
1 - -
但是我的脚本有问题是它像这样插入它们......
A B C
1 1 1
1 - -
1 - -
1 - -
1 - -
- 2 2

    //This part its not important
    function last(){
    var ss = SpreadsheetApp.openById("ID");
    var ssh = ss.getSheetByName("Name")
    var Range = ssh.getRange("B1:C"); 
    var getVal   = Range.getValues();

    //This part its the important
    var ss = SpreadsheetApp.getActiveSpreadsheet();     
    var ssh = ss.getSheetByName("Sheet 1");
    var lastRow = ssh.getLastRow() + 1;
    var ssRange = ssh.getRange(lastRow , 2, getVal.length, getVal[0].length).setValues(getVal);
}  

我需要帮助,以便将值插入正确的行。

编辑

这是我的脚本...

 function last(){
  var ss = SpreadsheetApp.openById("ID");
  var name = ss.getSheetByName("NAMES");
  var lastRow = name.getLastRow();
  var range = name.getRange("A"+(lastRow)+":D"+(lastRow)); 
  var datas   = range.getValues();

  var actSs = SpreadsheetApp.getActiveSpreadsheet();     
  var sheetOne = actSs.getSheetByName("1");
  var ltRo = sheetOne.getLastRow();
  var startRow = null;
  var i = 0;
  while(i < datas.length)
 {
  if(datas[i][0]){
  startRow = i + 2;
  i++;
  }
  if (!i){
  startRow = 1;
  }
  var ssRange = sheetOne.getRange(startRow, 2, datas.length, 
   datas[0].length).setValues(datas);
  }
 }  

这是电子表格

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


我以前从这个答案中使用过的另一种方法:

var ss = SpreadsheetApp.getActiveSpreadsheet();     
var ssh = ss.getSheetByName("Sheet 1");
    var Avals = ssh.getRange("B1:B").getValues();
    var Alast = Avals.filter(String).length;
    var ssRange = ssh.getRange(Alast +1 , 2, getVal.length, getVal[0].length).setValues(getVal);

推荐阅读