繁体   English   中英

需要将另一张纸中的格式和值都复制到空白的下一行

[英]Need to copy both the format and values in another sheet to the next row that is blank

我需要将此范围A1:BU17复制到同一电子表格中下一行可用的另一张纸上。 我试图用这个:

function Copy() {

 var sss = SpreadsheetApp.openById('x'); //replace with source ID
 var ss = sss.getSheetByName('Analysing'); //replace with source Sheet tab name
 var range = ss.getRange('A1:BU17'); //assign the range you want to copy
 var data = range.getValues();

 var tss = SpreadsheetApp.openById('x'); //replace with destination ID
 var ts = tss.getSheetByName('Archive'); //replace with destination Sheet tab name
 ts.getRange(ts.getLastRow()+1, 1, data.length, data[0].length).setValues(data);

}

我在stackoverflow内部发现了此搜索。 它确实将我的行复制到下一个可用的行,但不是复制的格式,所以当我使用它时完全是一团糟。 我知道Ofc“ X”是ID。 如果有人可以帮助我,请先谢谢您。

这个修改怎么样? 请认为这是几个答案之一。

您可以使用copyTo() 但是有一些限制。

通过反映它们,可以如下修改脚本。

流 :

  1. 检索作为来源的范围。
  2. 检索作为目的地的范围。
  3. 使用类表的copyTo()将源表复制到目标表。
  4. 使用类范围的copyTo()将源范围复制到目标范围。
  5. 删除使用类表的copyTo()复制的表。

示例脚本:

function Copy() {
  var sss = SpreadsheetApp.openById('x'); //replace with source ID
  var ss = sss.getSheetByName('Analysing'); //replace with source Sheet tab name
  var srcrange = ss.getRange('A1:BU17'); //assign the range you want to copy

  var tss = SpreadsheetApp.openById('x'); //replace with destination ID
  var ts = tss.getSheetByName('Archive'); //replace with destination Sheet tab name
  var dstrange = ts.getRange(ts.getLastRow()+1, 1, srcrange.getHeight(), srcrange.getWidth());

  var dstSS = dstrange.getSheet().getParent();
  var copiedsheet = srcrange.getSheet().copyTo(dstSS);
  copiedsheet.getRange(srcrange.getA1Notation()).copyTo(dstrange);
  dstSS.deleteSheet(copiedsheet);
}

如果我误解了您的问题,对不起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM