我找到了脚本,并成功地将值从母版表复制到另一个名为“煮熟”的表中。问题是它复制了母版表中的所有数据,我只想从特定列中复制值,比如A列、C列、D列、F列(B&E除外)和自动排列到目标表。
我的代码执行是有限的,但我能够从您那里学习(复制)来理解它:)
function copyTo(source,destination) {
var sourceSheet = source.getSheet();
var destSheet = destination.getSheet();
var sourceData = source.getValues();
var dest = destSheet.getRange(
destination.getRow(), // Top row of destination
destination.getColumn(), // left col of destination
sourceData.length, // # rows in source
sourceData[0].length); // # cols in source (elements in first row)
dest.setValues(sourceData);
SpreadsheetApp.flush();
}
function copySheet() {
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Total");
var destSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cooked");
var source = sourceSheet.getRange("A:N");
var destination = destSheet.getRange("A:N");
copyTo(source,destination );
}发布于 2016-04-01 05:29:40
在您的copySheet函数中,您可以看到复制需要Range A:N。如果更改此部分,则可以复制所需的范围。
既然你想复制一组不连续的列,我建议你这样做。
function copySheet() {
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Total");
var destSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cooked");
var columns_to_be_copied = ['A', 'C', 'D', 'F'];
var columns_to_be_pasted = ['A', 'B', 'C', 'D'];
for (column in columns_to_be_copied) {
var copy_range_string = columns_to_be_copied[column] + ':' + columns_to_be_copied[column];
var paste_range_string = columns_to_be_pasted[column] + ':' + columns_to_be_pasted[column];
var source = sourceSheet.getRange(copy_range_string);
var destination = destSheet.getRange(paste_range_string);
copyTo(source,destination );
}
}我们将所有要复制的列存储在一个变量中,迭代它们并生成copy_range_strings和paste_range_strings的formant A:A、C:C等,然后调用这些范围上的copyTo方法。现在您可以编辑columns_to_be_copied和columns_to_be_pasted,对数据进行更改,从哪一列转到哪一列。
发布于 2017-08-16 09:13:21
//Copying data from sheet 2 to sheet 1
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
var destSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
sourceSheet.getRange("E:G").copyTo(destSheet.getRange("E:G"), {contentsOnly:true});https://stackoverflow.com/questions/36347257
复制相似问题