首页 文章

Google电子表格复制/粘贴脚本 - 两个不相邻的单元格

提问于
浏览
0

我使用XML Feed提取数据 - 此Feed每天都会刷新 . 我正在尝试编写一个脚本来自动将Sheet1中两个单元格的值复制并粘贴到Sheet2的最后一个空行中 . 理想情况下,我希望在每次刷新时将两个值粘贴在单元格A1和B1中,然后粘贴到A2和B2等 . 我有一个脚本,可以将一个单元格复制/粘贴到新工作表中,但我很难同时复制(我不认为我可以使用范围,因为单元格不是彼此相邻) .

这适用于一个单元格:

function copydata() {

var ss = SpreadsheetApp.getActiveSpreadsheet();    
var sheet1 = ss.getSheetByName("Sheet1");   
var sheet2 = ss.getSheetByName("Sheet2");

sheet1.getRange("A60").copyTo(Sheet2.getRange(Sheet2.getLastRow()+1,1,1,1),     {contentsOnly:true});

}

但是当我将它与另一个脚本结合使用时,它仍然只复制一个单元格 . 这是我尝试过的:

function copydata() {

var ss = SpreadsheetApp.getActiveSpreadsheet(); 

var sheet1 = ss.getSheetByName("Sheet1");

var sheet2 = ss.getSheetByName("Sheet2");

sheet1.getRange(“A60”) . copyTo(sheet2.getRange(sheet2.getLastRow()1,1,1,1),> {contentsOnly:true});

function copydata() {

var ss = SpreadsheetApp.getActiveSpreadsheet();  

var sheet1 = ss.getSheetByName("Sheet1");

var sheet2 = ss.getSheetByName("Sheet2");

sheet1.getRange("A114").copyTo(sheet2.getRange(sheet2.getLastRow()+1,2,1,1),        
{contentsOnly:true});
}
}

1 回答

  • 0

    根据我的理解,你想在sheet2中创建一个新行,其值为Sheet1的“A60”和“A114” .

    getLastRow() 始终为您提供最后一行,因此如果您复制"A60"值,它将为您提供此行的下一行 .

    如果您知道副本的顺序(例如,首先复制“A60”,然后是“A114”),您可以在一个功能中执行此操作:

    function copydata() {
    
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    
    var sheet1 = ss.getSheetByName("Sheet1");
    
    var sheet2 = ss.getSheetByName("Sheet2");
    
    sheet1.getRange("A60").copyTo(sheet2.getRange(sheet2.getLastRow()+1,1,1,1),
    contentsOnly:true});
    
    sheet1.getRange("A114").copyTo(sheet2.getRange(sheet2.getLastRow(),2,1,1),        
    {contentsOnly:true});
    
    }
    

相关问题