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

如何用App Scripts将Google Sheets选中行复制到指定工作表第二行

实现Google Sheets选中行从Tab1复制到Tab2第二行的Apps Script方案

完整可直接使用的脚本

function copySelectedRowToTab2() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const tab1 = ss.getSheetByName("Tab1");
  const tab2 = ss.getSheetByName("Tab2");
  
  // 获取当前选中的单元格区域
  const activeRange = ss.getActiveRange();
  // 校验当前选中的位置是否在Tab1内
  if(activeRange.getSheet().getSheetName() !== "Tab1") {
    SpreadsheetApp.getUi().alert("请先在Tab1中选中要复制的行对应的任意单元格");
    return;
  }
  // 拿到选中单元格对应的行号
  const selectedRowNum = activeRange.getRow();
  // 提取该整行的所有数据
  const rowData = tab1.getRange(selectedRowNum, 1, 1, tab1.getLastColumn()).getValues();

  // 若不需要保留Tab2原有第二行及之后的内容,可删除下面这行插入空行的代码
  tab2.insertRowBefore(2);
  // 将数据写入Tab2的第二行
  tab2.getRange(2, 1, 1, rowData[0].length).setValues(rowData);
}

使用步骤

  • 打开目标Google Sheets文件,点击顶部菜单栏的「扩展程序」->「Apps 脚本」,进入脚本编辑页面
  • 删除编辑器中默认的空白代码,粘贴上述脚本,点击顶部的保存按钮,为项目自定义一个名称后完成保存
  • 首次运行需要授权:你可以直接在脚本编辑器顶部选中copySelectedRowToTab2函数,点击运行按钮,按照页面提示完成权限授权即可
  • 也可以回到表格页面,插入一个自定义按钮绑定该函数,后续点击按钮就能直接执行复制操作

常见调整说明

  • 如果你需要直接覆盖Tab2原有的第二行数据,不需要保留旧数据,删掉代码中的tab2.insertRowBefore(2);这一行即可
  • 如果你的工作表名称不是Tab1、Tab2,修改代码中getSheetByName的参数为你实际的工作表名称即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:36:06