Google sheets 使用脚本将格式和值从一个选项卡复制到另一个选项卡

Google sheets 使用脚本将格式和值从一个选项卡复制到另一个选项卡,google-sheets,spreadsheet,google-spreadsheet-api,Google Sheets,Spreadsheet,Google Spreadsheet Api,我有一个小问题,我已经完成了我想要的脚本的第一部分。我有这张纸如下 第一个选项卡:输入 A2:AA38我每周都会输入一些数据。行范围每周根据各种因素而变化。这意味着它可以是A2:AA35一些星期,而其他A2:AA42 第二个选项卡:输出 当脚本运行时,将自动添加来自输入的数据,并将在上周的输入中留下两行。我已经把这部分做好了。它工作得很好 function writeData () { var ss = SpreadsheetApp.getActiveSpreadsheet(); var inS

我有一个小问题,我已经完成了我想要的脚本的第一部分。我有这张纸如下

第一个选项卡:输入

A2:AA38我每周都会输入一些数据。行范围每周根据各种因素而变化。这意味着它可以是A2:AA35一些星期,而其他A2:AA42

第二个选项卡:输出

当脚本运行时,将自动添加来自输入的数据,并将在上周的输入中留下两行。我已经把这部分做好了。它工作得很好

function writeData () {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var inSheet = ss.getSheetByName("input");
var input = inSheet.getRange(1, 1, inSheet.getLastRow(), 26).getValues();
var outSheet = ss.getSheetByName("output");
var outStartRow = outSheet.getLastRow() + 2;

for (var i = 0; i < input.length; i++) {
for (var j = 0; j < input[i].length; j++) {
  outSheet.getRange(outStartRow + i, j + 1)
    .setValue(input[i][j]);

}
我试过这个,但我很确定它不起作用。我发现一些格式,例如

 copyFormatToRange
 copyTo(destination)
但是,由于我对脚本非常陌生,我不知道如何在我现有的脚本中实现它。请帮助我

我发现整个代码是这样的:

   function writeData () {
   var sss= SpreadsheetApp.getActiveSpreadsheet();
   var inSheet2 = sss.getSheetByName("input");
   var input2 = inSheet2.getRange(1, 1, inSheet2.getLastRow(), 42);
   var outSheet2 = sss.getSheetByName("Schedule List");
    var outStartRow2 = outSheet2.getLastRow() + 2;
   var outStartRow3 = outSheet2.getLastRow() + 2;
   input2.copyFormatToRange(outSheet2, 1, 42, outStartRow3, outStartRow2);                                

   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var inSheet = ss.getSheetByName("input");
   var input = inSheet.getRange(1, 1, inSheet.getLastRow(), 42).getValues();
   var outSheet = ss.getSheetByName("Schedule List");
   var outStartRow = outSheet.getLastRow() + 2;


   for (var i = 0; i < input.length; i++) {
   for (var j = 0; j < input[i].length; j++) {
  outSheet.getRange(outStartRow + i, j + 1)
  .setValue(input[i][j]);
   }
   }
  }
我知道,有点混乱,但它可以工作。

在您的代码中: 而不是:

var range2 = source2.getRange(1, 1, inSheet.getLastRow(), 5).getValues();
应该是:

var range2 = source2.getRange(1, 1, inSheet.getLastRow(), 5);

这就是remove.getValues

是的,我只是来发布我自己的答案,但你得到了。我做了这个var input2=inSheet2.getRange1,1,inSheet2.getLastRow,42;
var range2 = source2.getRange(1, 1, inSheet.getLastRow(), 5);