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

如何实现选中单元格后复制其所在行B:D列至另一工作表?

修改后的脚本实现选中行复制功能

以下是调整后的脚本,可实现选中Sheet1中任意单元格时,自动复制该行的B:D列区域到Sheet2的指定位置:

function copypaste() {
  const ss = SpreadsheetApp.getActive();
  const sheet1 = ss.getSheetByName('Sheet1');
  const sheet2 = ss.getSheetByName('Sheet2');
  
  // 获取当前选中单元格所在的行号
  const activeRow = sheet1.getCurrentCell().getRow();
  // 动态确定要复制的B:D列区域
  const sourceRange = sheet1.getRange(`B${activeRow}:D${activeRow}`);
  
  // 获取Sheet2中M1指定的目标位置
  const targetRangeAddress = sheet2.getRange('M1').getValue();
  const targetRange = sheet2.getRange(targetRangeAddress);
  
  // 执行复制粘贴操作
  sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
  
  // 清除目标区域背景格式
  targetRange.setBackground(null);
  
  // 切回Sheet1
  ss.setActiveSheet(sheet1);
}

关键修改说明:

  • 移除了原脚本中冗余的activate()调用:Apps Script操作单元格/区域无需先激活,直接操作对象更高效
  • 动态获取选中行:通过getCurrentCell().getRow()获取选中单元格的行号,自动生成该行的B:D列区域
  • 优化变量结构:直接获取Sheet1和Sheet2对象,减少重复调用,代码可读性更强
  • 保留原脚本的核心需求:从Sheet2的M1获取目标位置、粘贴后清除背景、切回Sheet1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:25:18