You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按范围复制Sheet A数据到Sheet B最后一行且消除空白行?

解决Google Apps Script复制数据时出现空白行的问题

问题根源

你当前代码中sourceSheet.getRange("Sheet A!A2:L")会选中从A2到L列的所有行,包含Sheet A里该范围内的空白行,导致复制到Sheet B时带入空白行。

修改后的代码

//TEST
////Get Data from Sheet A and Paste to Sheet B (无空白行版)
function CopyandPaste() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var destSheet = ss.getSheetByName('Sheet B');
  var sourceSheet = ss.getSheetByName('Sheet A');
  
  // 获取Sheet A中实际有内容的最后一行行号
  var sourceLastRow = sourceSheet.getLastRow();
  // 若Sheet A中A2及以下无数据,直接终止操作
  if (sourceLastRow < 2) return;
  
  // 定义仅包含有效数据的源范围:A2到L列的最后一行
  var sourceRange = sourceSheet.getRange(2, 1, sourceLastRow - 1, 12);
  
  var destLastRow = destSheet.getLastRow();
  // 检查Sheet B剩余行是否足够,不足则插入对应数量的行
  if (destLastRow + sourceRange.getNumRows() > destSheet.getMaxRows()) {
    destSheet.insertRowsAfter(destLastRow, sourceRange.getNumRows());
  }
  
  // 定义与源范围尺寸一致的目标范围
  var destRange = destSheet.getRange(destLastRow + 1, 1, sourceRange.getNumRows(), sourceRange.getNumColumns());
  sourceRange.copyTo(destRange, {contentsOnly: true});
};

关键改进点

  • 用getLastRow()精准定位Sheet A的有效数据边界,只复制非空白行的内容
  • 目标范围与源范围的行数、列数完全匹配,避免多余空白行被粘贴
  • 增加无数据时的终止判断,减少无效操作

内容的提问来源于stack exchange,提问作者Nur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 02:17:10