我试图找到一个脚本,我可以从特定单元格中的电子表格中复制数据,然后将其粘贴到同一电子表格中的不同标签中。
复制并粘贴信息后,我将运行一个脚本来删除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中,依此类推。
答案 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"
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)
}