我在从单元格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)
})}
非常感谢我能提供的任何帮助。
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)
})}