尝试在工作表上复制列范围并将其粘贴到另一张工作表上的行中,并在每次脚本运行时将其插入顶部

时间:2018-10-14 22:58:55

标签: google-apps-script google-sheets

我正在尝试在工作表上复制一个列范围,并将其粘贴到另一张工作表上的行中。我希望每次脚本运行时都将其插入顶部。这是我到目前为止所得到的:

function Copy() {

 var sss = SpreadsheetApp.openById('1UbcIcGJRVxsX9WbzunS96Ijf8c2gRc8UYb40lHpWWQU'); //source ID

 var ss = sss.getSheetByName('Container Input'); //source Sheet tab name

 var range = ss.getRange('B4:B23'); //assigned range to copy

 var data = range.getValues();

 var tss = SpreadsheetApp.openById('1UbcIcGJRVxsX9WbzunS96Ijf8c2gRc8UYb40lHpWWQU'); //destination ID

 var ts = tss.getSheetByName('Container Log'); //destination sheet tab name

 ts.getRange(1, 1, data.length, data[0].length).setValues(data); //you will need to define the size of the copied data see getRange()

//range.clearContent(); //clears var range

}

1 个答案:

答案 0 :(得分:0)

函数Copy() {

var sss = SpreadsheetApp.openById('1UbcIcGJRVxsX9WbzunS96Ijf8c2gRc8UYb40lHpWWQU');  //来源ID

var ss = sss.getSheetByName('Container Input'); //源工作表标签名称

var ts = sss.getSheetByName('Cylinder Tracking'); //目的地工作表标签名称

// var保护= ts.protect();

// protection.setUnprotectedRanges(2,1,1,21);

ts.insertRowsBefore(2,1); //在第2行之前添加新行-保持  旧行2换为新行2

var source_C = 2;

var source_R = 3;

var dest_C = 2;

var dest_R = 2;

SpreadsheetApp.getActive()。getRange('Cylinder Tracking!A2')。setValue(new Date())
  for(变量计数器= 1;计数器<= 20;计数器++)   {

var source_range = ss.getRange(source_R,source_C); //指定要复制的范围

var data = source_range.getValues();

var dest_range = ss.getRange(dest_C,dest_R);

ts.getRange(dest_R,dest_C).setValues(data); //您需要定义   复制的数据,请参见getRange()

source_R ++;

dest_C ++;

} }