【问题标题】:Copying range of values from Google Sheet to other将值范围从 Google 表格复制到其他
【发布时间】:2019-10-06 22:39:37
【问题描述】:

我想将值范围从一个电子表格复制到另一个电子表格 (A1:H45)。我尝试了下面的代码。尽管复制了 Cells A1:H45 的值,但它会将 A1 Cell 数据复制到整个 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);
}

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    试试这个 -

    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);
    }
    

    你的代码很完美。您所要做的就是使用setValues(复数)而不是setValue :)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多