类别范围的 ClassSheet的 类别表的
我需要将这个范围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()
。但也有一些局限性。
copyTo()
可以将格式和值复制到同一电子表格中的工作表和范围中
copyTo()
无法将数据复制到其他电子表格中的范围和工作表中copyTo()
可以将一张表复制到其他电子表格中copyTo()
无法复制范围通过反映它们,可以按如下方式修改脚本。
流量:
- 检索作为源的范围
- 检索作为目标的范围
- 使用类别工作表的
copyTo()
将源工作表复制到目标工作表 - 使用类范围的
copyTo()
将源范围复制到目标范围 - 删除使用类别工作表的
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);
}
如果我误解了你的问题,我很抱歉。