复制表并追加到较大的归档表-Google表格脚本

问题描述 投票:0回答:1

我在从单元格C11到J列的工作表上有一组数据,并且具有动态行数。

[我想做的就是简单地将数据表复制到另一个主表上的第一个空行,当这些较小的表添加到表时,A1:H的长度越来越长。

理想情况下,我希望将此设置为脚本,以稍微自动化其他用户的过程。

我所遇到的问题是,在我的小表中有一个公式,可以在将值首次复制并粘贴到其中"=if(D11>0,$D$7,"")时将可变日期添加到这些值。不幸的是,包含此公式会导致我的主要任务受到干扰,即使在保留空白的情况下也被复制时却被包含在内,然后与我在网上某个地方找到的代码产生间隙并运行错误。


      function getDynamicRows(){
     var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Data Entry');
  var sourceRange = sheet.getRange('C11:J');
  var data = sourceRange.getValues(); // Array of arrays [[Row1],[Row1],[Row3]]

  // add data to next empty row in the static sheet. 
  var targetSheet = ss.getSheetByName('2020 Data');
  data.forEach(function(row){
    targetSheet.appendRow(row)
  })}

非常感谢我能提供的任何帮助。

google-sheets append copy-paste
1个回答
0
投票

使用getDisplayValues()代替getValues()

使用getDisplayValues()将确保您以在原始工作表中看到的方式复制值,而不会干扰公式

示例:

      function getDynamicRows(){
     var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Data Entry');
  var sourceRange = sheet.getRange('C11:J');
  var data = sourceRange.getDisplayValues(); // Array of arrays [[Row1],[Row1],[Row3]]

  // add data to next empty row in the static sheet. 
  var targetSheet = ss.getSheetByName('2020 Data');
  data.forEach(function(row){
    targetSheet.appendRow(row)
  })}

© www.soinside.com 2019 - 2024. All rights reserved.