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

如何使用Google Apps Script复制Google Sheets最后行指定列数据到另一工作表

解决方案

原代码的核心问题是复制范围设定为了整列(例如A:A),因此会复制对应列的全部行数据,我们只需要把复制/粘贴范围修改为源表最后一行的对应单元格和目标表待写入行的对应单元格即可。

修改后的可直接运行的代码如下:

function copyLastRow() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sourceSheet = ss.getSheetByName("Total");
  const destSheet = ss.getSheetByName("vnSheet");
  // 定义需要复制、粘贴的对应列
  const copyColumns = ['A', 'B', 'D', 'F'];
  const pasteColumns = ['A', 'B', 'D', 'F'];

  // 获取源表最后一行的行号,仅提取该行数据
  const sourceLastRow = sourceSheet.getLastRow();
  // 计算目标表待写入行号:现有最后一行+1,默认追加新行
  // 若需要覆盖目标表最后一行,可改为 const destLastRow = destSheet.getLastRow()
  const destLastRow = destSheet.getLastRow() + 1;

  // 循环逐列复制对应单元格内容
  for (let i = 0; i < copyColumns.length; i++) {
    const sourceRange = sourceSheet.getRange(`${copyColumns[i]}${sourceLastRow}`);
    const destRange = destSheet.getRange(`${pasteColumns[i]}${destLastRow}`);
    sourceRange.copyTo(destRange, {contentsOnly: true});
  }
}

调整说明

  • 仅提取源表Total最后一行的指定列数据,不会复制历史行内容
  • 默认将数据追加到vnSheet的最后一行下方,不会覆盖原有数据
  • 保留contentsOnly:true配置,仅复制单元格数值,不会同步格式、公式等内容
  • 若后续需要调整复制/粘贴的对应列,直接修改copyColumns和pasteColumns数组即可

内容的提问来源于stack exchange,提问作者Mohammad Al Amin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:12:03