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

Copy data from one sheet to another; creating a table with the copied data in the target sheet

本文关键字:工作 一个 数据 复制 目标 创建 另一个      更新时间:2023-09-26

我正在尝试找到一个脚本,我可以在其中从特定单元格中的电子表格复制数据,然后将其粘贴到同一电子表格中的不同选项卡中。

复制并粘贴信息后,我将运行脚本来擦除 SOURCE 选项卡中的数据,以便可以键入新信息。(我已经有擦除代码)

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

这个想法是,可以使用在工作表中输入的信息在目标工作表上生成一个表。

例:

我想将单元格 B2、

C4 和 D6 分别从源工作表复制到目标工作表中的单元格 B2、B3 和 B4。然后在第二个实例中,复制的数据应粘贴到 SOURCE 工作表中,但粘贴到单元格 C2、C3 和 C4 中,依此类推。

我会首先将 SOURCE 工作表中的数据放入数组中。然后将其发送到目标工作表上所需的范围。

这是一种方法,我对编程相当陌生,所以可能有更好的方法。

我假设您在 A2、A3 和 A4 的目标工作表中有数据。

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)  
}
相关文章: