首页 > 解决方案 > 将值复制并粘贴到 Google 表格中的下一个空行中

问题描述

我最近开始在 Google Sheets 中做一些工作,以前我可以在 Excel 中编写函数,但我无法在 Google Sheets Scripting 中使用它。

我有两张床单

表 1. 单元格 A1 - E5 包含基于某些选择标准的值表 2. 注册表

我需要的是执行脚本时(通过绘图和链接宏)

我需要它来复制范围 A1:E1

进入工作表 2,转到 A 列中的第一个空白单元格,然后粘贴值。

我正在使用以下脚本,我得到了

目标范围的坐标超出了工作表的尺寸。

function moveValuesOnly () {
  var ss = SpreadsheetApp.getActiveSpreadsheet ();
  var source = ss.getRange ("PNG Sheet!A1:E1");
  var destSheet = ss.getSheetByName("Project Codes");
  var destRange = destSheet.getRange(destSheet.getLastRow()+1,1);
  source.copyTo (destRange, {contentsOnly: true});
  source.clear ();
}

任何帮助将不胜感激。

干杯格雷姆

标签: google-apps-scriptgoogle-sheets

解决方案


您收到此错误是因为您尝试在“项目代码”表中选择一个不存在的范围。改用该appendRow()方法,该方法将

  1. 将传递的值粘贴到第一个空白行中,然后
  2. 自动调整工作表的大小。

    function moveValuesOnly() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var source = ss.getRange("PNG Sheet!A1:E1");
      var destSheet = ss.getSheetByName("Project Codes");
      destSheet.appendRow(source.getValues()[0]);
      source.clear();
    }
    

推荐阅读