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

求助:编写Google Apps Script实现带格式复制指定单元格至目标工作表末行

Google Sheets 脚本实现带格式复制单元格到目标工作表最后一行

以下是满足需求的完整脚本,它会复制Sheet A中A2:K12的所有内容和格式(包括高亮颜色、字体、边框等),并粘贴到Sheet B的最后一个可用行上方的空行:

function copyWithFormatToLastRow() {
  // 获取当前打开的电子表格
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  // 定位源工作表和目标工作表
  const sourceSheet = ss.getSheetByName('Sheet A');
  const targetSheet = ss.getSheetByName('Sheet B');
  
  // 定义需要复制的源单元格范围
  const sourceRange = sourceSheet.getRange('A2:K12');
  
  // 高亮源范围(可选,这里用黄色高亮,可自行修改颜色代码)
  sourceRange.setBackground('#ffff00');
  
  // 计算目标工作表的最后一行,下一行作为粘贴起始位置
  const lastTargetRow = targetSheet.getLastRow();
  const targetStartRow = lastTargetRow + 1;
  // 匹配源范围的行列数,定义目标粘贴范围
  const targetRange = targetSheet.getRange(targetStartRow, 1, sourceRange.getNumRows(), sourceRange.getNumColumns());
  
  // 复制所有内容和格式到目标范围
  sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_ALL, false);
}

关键说明:

  • SpreadsheetApp.CopyPasteType.PASTE_ALL:这个参数是核心,它会复制单元格的所有属性,包括值、公式、背景色、字体样式、边框、数据验证等,完全解决你只复制值的问题。
  • 高亮功能:脚本中加入了sourceRange.setBackground('#ffff00')来高亮源单元格,如果你不需要可以直接删除这一行。
  • 动态定位目标行:getLastRow()会自动获取Sheet B最后有内容的行,加1确保粘贴到下一个空行,避免覆盖已有数据。

使用方法:

  1. 打开你的Google表格,点击顶部菜单「扩展程序」→「Apps 脚本」
  2. 将上述代码粘贴到脚本编辑器中,保存项目(任意命名即可)
  3. 点击运行按钮,第一次运行需要完成授权验证,按照页面提示操作即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 15:40:48