将数据从一张纸复制到另一张;使用目标工作表中复制的数据创建表

时间:2016-03-16 22:43:23

标签: javascript google-apps-script google-sheets

我试图找到一个脚本,我可以从特定单元格中的电子表格中复制数据,然后将其粘贴到同一电子表格中的不同标签中。

复制并粘贴信息后,我将运行一个脚本来删除SOURCE选项卡中的数据,这样就可以输入新信息。(我已经有了删除代码)

function EraseInfo() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('SOURCE');
  sheet.getRange('B2').clearContent();
  sheet.getRange('C4').clearContent();
  sheet.getRange('D6').clearContent();
}

我们的想法是可以在目标表上生成一个表格,并在 SOURCE表中输入信息。

示例:

我想将SOURCE表中的单元格B2,C4和D6分别复制到TARGET表格中的单元格B2,B3和B4。 然后在第二个实例中,复制的数据应该粘贴在SOURCE表中,但是在单元格C2,C3和C4中,依此类推。

1 个答案:

答案 0 :(得分:0)

我首先将您的SOURCE表中的数据放入数组中。然后将它发送到你想要的TARGET表格范围。

这是一种方法,我对编程很新,所以可能有更好的方法。

我假设你在A2,A3和A4的TARGET表中有数据。

function myFunction() {
  var sSheet = SpreadsheetApp.getActive().getSheetByName('SOURCE')
  var tSheet = SpreadsheetApp.getActive().getSheetByName('TARGET')
  var SourceD = sSheet.getDataRange().getValues()
  var SourceArray = [[SourceD[1][1]],[SourceD[3][2]],[SourceD[5][3]]]
  var LastC = tSheet.getLastColumn()
  tSheet.getRange(2, LastC+1,3).setValues(SourceArray)  
}

这应该让你开始。该脚本将SOURCE表上的所有数据放入一个数组中,然后选择它需要的内容。在此之后,您只需要在此功能的末尾插入EraseInfo(),一旦复制了数据,它将删除SOURCE表上的信息。

同样有很多方法可以做到这一点,这是我会使用的方法。

编辑:回答以下评论

您必须更改代码的三个底行才能执行此操作。这是一种简单的方法,并假设您有A和B列的相同数据,并且标题至少为A1。您可以在"Data A""Data B"

中输入A和B列所需的任何数据
function myFunction() {
  var sSheet = SpreadsheetApp.getActive().getSheetByName('SOURCE')
  var tSheet = SpreadsheetApp.getActive().getSheetByName('TARGET')
  var SourceD = sSheet.getDataRange().getValues()
  var SourceArray = [["Data A", "Data B",SourceD[1][1],SourceD[3][2],SourceD[5][3]]]
  var LastR = tSheet.getLastRow()
  tSheet.getRange(LastR+1, 1,1,5).setValues(SourceArray)  
}