我找到了该脚本并成功将值从主工作表复制到另一个名为" Cooked"的工作表中。麻烦的是它从主表复制所有数据,我只想复制特定列的值,如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 );
}
答案 0 :(得分:2)
在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
等的A:A
和C:C
。然后调用copyTo方法在这些范围内。现在,您可以修改columns_to_be_copied
和columns_to_be_pasted
以对列应该转到哪一列的数据进行更改
答案 1 :(得分:-1)
formGroup