将值范围从Google表格复制到其他

Zil*_*hvi 3 google-sheets google-apps-script

我想将值范围从一个电子表格复制到另一个电子表格(A1:H45)。我尝试了下面的代码。尽管复制单元格A1:H45的值,它仍将A1单元格数据复制到整个A1:H45的新工作表中,这意味着同一数据被复制了45次。

function Copy()
{
var sss = SpreadsheetApp.openById('1IK6YsZS3_NNAlFA41d8uKriPzfZs_2Ukyh94eeBFj40'); 
var ss = sss.getSheetByName('CURRENT'); 
var range = ss.getRange('A1:H45'); 
var data = range.getValues();
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var yourNewSheet = activeSpreadsheet.getSheetByName("New sheet");
if (yourNewSheet != null) 
{

    activeSpreadsheet.deleteSheet(yourNewSheet);
}
yourNewSheet = activeSpreadsheet.insertSheet();
yourNewSheet.setName("Name of your new sheet");
yourNewSheet.getRange(yourNewSheet.getLastRow()+1,1,45,8).setValue(data);
}
Run Code Online (Sandbox Code Playgroud)

Sou*_*ria 6

尝试这个 -

function Copy()
{
var sss = SpreadsheetApp.openById('1IK6YsZS3_NNAlFA41d8uKriPzfZs_2Ukyh94eeBFj40'); 
var ss = sss.getSheetByName('CURRENT'); 
var range = ss.getRange('A1:H45'); 
var data = range.getValues();
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var yourNewSheet = activeSpreadsheet.getSheetByName("New sheet");
if (yourNewSheet != null) 
{

    activeSpreadsheet.deleteSheet(yourNewSheet);
}
yourNewSheet = activeSpreadsheet.insertSheet();
yourNewSheet.setName("Name of your new sheet");
yourNewSheet.getRange(yourNewSheet.getLastRow()+1,1,45,8).setValues(data);
}
Run Code Online (Sandbox Code Playgroud)

您的代码是完美的。您要做的就是使用setValues(复数)代替setValue:)