首页 > 解决方案 > 如何在最后一行之后动态粘贴值 [Google 脚本]

问题描述

我正在构建一个脚本来复制另一个电子表格中的一行。这个想法是有一个表格,其中包含将存储在第二个电子表格中的输入。但是,我在构建动态粘贴范围方面面临着一些真正的困难。这是我能够以我目前的知识达到的点:

       function Export() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var database = SpreadsheetApp.openById("xxx");
var source = ss.getSheetByName('yyy');
var dataToCopy = source.getRange('bb').getValues();
var copyToSheet = database.getSheetByName("zzz");
var copyData = copyToSheet.getRange('bb').setValues(dataToCopy)
var Clean = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('yyy').getRange('bb');
            Clean.clear({contentsOnly:true});
}

此脚本将范围复制到第二个电子表格中的固定范围中,并清除源中存在的值。我的问题是:如何创建一个范围,使脚本将数据粘贴到第二个电子表格的第一个空白行中?

我尝试了 appendRow、getLastRow、insertRowAfter 的一些组合,但我无法完成。

感谢您的时间!

标签: javascriptgoogle-sheets

解决方案


这是我在朋友的帮助下能够实现的:

function Export2() {
     var ss = SpreadsheetApp.getActiveSpreadsheet()
      var database = SpreadsheetApp.openById("1UfKqXCMNIbjh3ge7s26SNkXyGez-bY3fvl6_3-RQKos");
     var source = ss.getSheetByName('Sheet26');
       var dataToCopy = source.getRange('A1:E1');
      var copyToSheet = database.getSheetByName("TOT");
      var lastRow = copyToSheet.getLastRow();
      for (var i = 1; i<6 ;i++){
     var Paste = copyToSheet.getRange(lastRow + 1,i).setValue(dataToCopy.getCell(1, i).getValue());
    }

    var Clean = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet26').getRange('A1:E1');
                Clean.clear({contentsOnly:true});
    }

推荐阅读