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

时间:2014-07-14 18:51:05

标签: google-apps-script google-sheets

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

这适用于一个单元格:

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 :(得分:0)

根据我的理解,你想在sheet2中创建一个新行,其值为“1”的“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});

}