【问题标题】:copy data from one sheet to another in google app script and append a row, one small issue在谷歌应用脚​​本中将数据从一张表复制到另一张表并附加一行,一个小问题
【发布时间】:2017-12-11 12:49:06
【问题描述】:

当然我把它记下来了,但就是不能把它弄好。设置了一个脚本以从一张表中获取数据并将其放入另一张表中,我已经这样做了,但是在复制时会留下空白,我不知道如何解决它。我确定在代码中,我打了问号的地方就是问题所在。

我试过 put i, last, last+1, 10, 12 但这些都不起作用,感觉我错过了一些小东西来解决这个问题。下面是代码,如果需要,可以查看工作表的链接(工作表仅供我学习,如果您愿意,可以作为一个基本示例)。

提前感谢,如果代码可以写得更好,请告诉我,因为我还在学习这个:)

function copyInfo() {
  var app = SpreadsheetApp;
  var copySheet = app.getActiveSpreadsheet().getSheetByName("Copy");
  for (var i = 2; i <12; i++) {   
  var getInfo = copySheet.getRange(2,2,i,2).getValues();
  //  get the info from range above - start at row 2 on column 2 (b), get number of rows i , number of columns = 2, b,c 
  var last = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Paste").getLastRow();
  var pasteSheet = app.getActiveSpreadsheet().getSheetByName("Paste");
//  Tell it where you want the info to go to 

  pasteSheet.getRange(last+1,1,?,2).setValues(getInfo);
  var clearIt = copySheet.getRange(2,2,i,2).clearContent();  
// this clears the copy range aka getInfo
  }}

link to sheet

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    您可以使用copyTo 一次复制整个范围,因此您的函数可以重写为:

    function copyInfo() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var copySheet = ss.getSheetByName("Copy");
      var pasteSheet = ss.getSheetByName("Paste");
    
      // get source range
      var source = copySheet.getRange(2,2,12,2);
      // get destination range
      var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);
    
      // copy values to destination range
      source.copyTo(destination);
    
      // clear source values
      source.clearContent();
    }
    

    【讨论】:

    • 感谢您的帮助,我认为我在第一次解释中不是很清楚/遗漏了一些内容。它需要复制信息,但将其添加到粘贴页面的最后一行,不要留下空白。您的方法复制信息并粘贴它,也会清除但不会将其添加到下一行,因此每次运行时都会覆盖信息。我可以让它在一列而不是两个 atm 上工作,这就是我所坚持的,不过感谢您到目前为止的帮助:)
    • 好的,我明白了,进行了编辑,所以现在它将在粘贴表的最后一行之后粘贴值。
    • 这非常有效:) 你发送的最后一个代码如何从最后一行开始,目前它错过了最后一行,如果你再次运行脚本,它会如何工作应该,只是第一次运行开始它说在 A3 而不是空白的 a2 上。感谢您的所有帮助
    • 请检查 a2 是否实际为空(没有空格等),如果第二行的另一个单元格中有某个值,Google Apps 脚本不会将其视为空。跨度>
    • 我在 d2 中有一些文本,这是造成它的原因,现在已排序,非常感谢您
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2023-03-12
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    相关资源
    最近更新 更多