如何用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
相关产品推荐
相关产品推荐

