【问题标题】:Copying data script is not working anymore复制数据脚本不再起作用
【发布时间】:2020-11-25 20:51:33
【问题描述】:

我一直在使用我在此处找到的 Google 表格中的脚本:

copy data from one sheet to another in google app script and append a row, one small issue

  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();
}

当我现在运行它时,它给了我一个错误:

目标范围的坐标在维度之外 表格。

以前没有出现过。有谁知道它为什么这样做?

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    问题:

    错误在这一行:

    var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);

    pasteSheet.getLastRow() 返回工作表最底部的行号。然后您考虑12 行范围,但pasteSheet 没有12最后一行内容之后。

    解决方案:

    pasteSheet中添加更多行:

    或者你可以使用insertRowsAfter:

    pasteSheet.insertRowsAfter(pasteSheet.getLastRow(), 12)

    代码 sn-p:

    function myFunction() {
       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);
      // insert rows to make sure you have enough space
      pasteSheet.insertRowsAfter(pasteSheet.getLastRow(), 12)
      // 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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-08
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 2021-07-21
      相关资源
      最近更新 更多