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

使用Google Apps Script实现无空白行跨工作表数据复制

修正后的Google Apps Script代码实现需求

原代码存在几个关键问题导致无法实现需求:

  • 语法错误:getSheet1ByName 是笔误,正确写法是 getSheetByName,而且目标工作表应该是Sheet1不是"Sheet"
  • 错误判断空白:直接用Range对象判断source != ""完全无效,Range对象永远不等于空字符串
  • 硬编码行数:固定取6000行不灵活,还会复制大量空白行
  • 未过滤空白行:直接复制整个范围,没有剔除空白内容

下面是能实现需求的代码:

function copyInfo() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const copySheet = ss.getSheetByName("Sheet1");
  const pasteSheet = ss.getSheetByName("DataDump");
  
  // 获取Sheet1中E列的所有值(从第1行到最后一行有数据的行)
  const eColumnValues = copySheet.getRange(1, 5, copySheet.getLastRow(), 1).getValues();
  
  // 过滤掉空白行,只保留非空的单元格值
  const filteredValues = eColumnValues.filter(row => row[0] !== "");
  
  // 如果有非空数据,就粘贴到DataDump的下一行开始位置
  if (filteredValues.length > 0) {
    const nextRow = pasteSheet.getLastRow() + 1;
    pasteSheet.getRange(nextRow, 1, filteredValues.length, 1).setValues(filteredValues);
  }
}

代码说明:

  • 动态获取E列的数据范围:用copySheet.getLastRow()代替硬编码行数,只取有数据的部分
  • 过滤空白行:用filter方法剔除值为空的行
  • 精准粘贴:计算DataDump的下一行,只粘贴过滤后的非空数据,保证结果是连续无空白的

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:55:17